KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > lib > templates > TKDateTag


1 package com.teamkonzept.lib.templates;
2
3 import com.teamkonzept.lib.*;
4
5 import java.io.*;
6 import java.util.*;
7 import java.text.*;
8
9 /**
10  *
11  * @author $Author: mischa $
12  * @version $Revision: 1.4 $
13  */

14 public class TKDateTag extends TKLabelTag {
15
16     public static final int TAG_TYPE = TKExistsTag.TAG_TYPE+1;
17
18     //*******************************************************************
19
/**
20      * Konstruktor 1
21      * Ein Syntaxbaum fuer ein Template wird erzeugt.
22      */

23     public TKDateTag( TKTemplateSyntax parent, String JavaDoc name, boolean hasSubTags ) throws TKTemplateSyntaxException
24     {
25         super( parent, name, hasSubTags );
26     }
27     
28     /*******************************************************************
29     /**
30      *
31      */

32     public String JavaDoc apply( TKTemplateData td ) throws TKTemplateSyntaxException
33     {
34         String JavaDoc label = getRealLabel( td ); // z.B. MET:de:DE:dd.MM.yyyy HH:mm:ss
35

36         int i1 = label.indexOf(':',0);
37         int i2 = label.indexOf(':',i1+1);
38         int i3 = label.indexOf(':',i2+1);
39
40         String JavaDoc timezone = label.substring (0,i1).trim();
41         String JavaDoc language = label.substring (i1+1,i2).trim();
42         String JavaDoc country = label.substring (i2+1,i3).trim();
43         String JavaDoc fmt = label.substring (i3+1);
44
45         TimeZone tz = timezone.length() == 0 ? TimeZone.getDefault() : TimeZone.getTimeZone(timezone);
46
47         SimpleDateFormat dateFormat = language.length() == 0 || country.length() == 0 ?
48             new SimpleDateFormat ("") :
49             new SimpleDateFormat ("",new Locale (language,country));
50             
51         dateFormat.setTimeZone(tz);
52         dateFormat.applyPattern(fmt);
53
54         return dateFormat.format(new java.util.Date JavaDoc());
55     }
56     
57     public void apply(TKTemplateData td, Writer writer)
58         throws TKTemplateSyntaxException, IOException
59     {
60         String JavaDoc label = getRealLabel( td ); // z.B. MET:de:DE:dd.MM.yyyy HH:mm:ss
61

62         int i1 = label.indexOf(':',0);
63         int i2 = label.indexOf(':',i1+1);
64         int i3 = label.indexOf(':',i2+1);
65
66         String JavaDoc timezone = label.substring (0,i1).trim();
67         String JavaDoc language = label.substring (i1+1,i2).trim();
68         String JavaDoc country = label.substring (i2+1,i3).trim();
69         String JavaDoc fmt = label.substring (i3+1);
70
71         TimeZone tz = timezone.length() == 0 ? TimeZone.getDefault() : TimeZone.getTimeZone(timezone);
72
73         SimpleDateFormat dateFormat = language.length() == 0 || country.length() == 0 ?
74             new SimpleDateFormat ("") :
75             new SimpleDateFormat ("",new Locale (language,country));
76             
77         dateFormat.setTimeZone(tz);
78         dateFormat.applyPattern(fmt);
79
80         writer.write(dateFormat.format(new java.util.Date JavaDoc()));
81     }
82 }//end class
83
Popular Tags