You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by co...@apache.org on 2001/07/30 15:08:05 UTC
cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs Tstamp.java
conor 01/07/30 06:08:05
Modified: src/main/org/apache/tools/ant/taskdefs Tstamp.java
Log:
Add Locale support to TStamp task.
Submitted by: Michal Pise <mi...@st.ms.mff.cuni.cz>
Revision Changes Path
1.11 +37 -3 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Tstamp.java
Index: Tstamp.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Tstamp.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Tstamp.java 2001/01/05 10:55:05 1.10
+++ Tstamp.java 2001/07/30 13:08:05 1.11
@@ -85,8 +85,7 @@
project.setProperty("TODAY", today.format(d));
Enumeration i = customFormats.elements();
- while(i.hasMoreElements())
- {
+ while(i.hasMoreElements()) {
CustomFormat cts = (CustomFormat)i.nextElement();
cts.execute(project,d, location);
}
@@ -107,6 +106,9 @@
{
private String propertyName;
private String pattern;
+ private String language;
+ private String country;
+ private String variant;
private int offset = 0;
private int field = Calendar.DATE;
@@ -124,6 +126,29 @@
this.pattern = pattern;
}
+ public void setLocale(String locale)
+ {
+ StringTokenizer st = new StringTokenizer( locale, " \t\n\r\f,");
+ try {
+ language = st.nextToken();
+ if (st.hasMoreElements()) {
+ country = st.nextToken();
+ if (st.hasMoreElements()) {
+ country = st.nextToken();
+ if (st.hasMoreElements()) {
+ throw new BuildException( "bad locale format", location);
+ }
+ }
+ }
+ else {
+ country = "";
+ }
+ }
+ catch (NoSuchElementException e) {
+ throw new BuildException( "bad locale format", e, location);
+ }
+ }
+
public void setOffset(int offset) {
this.offset = offset;
}
@@ -168,7 +193,16 @@
throw new BuildException("pattern attribute must be provided", location);
}
- SimpleDateFormat sdf = new SimpleDateFormat (pattern);
+ SimpleDateFormat sdf;
+ if (language == null) {
+ sdf = new SimpleDateFormat(pattern);
+ }
+ else if (variant == null) {
+ sdf = new SimpleDateFormat(pattern, new Locale(language, country));
+ }
+ else {
+ sdf = new SimpleDateFormat(pattern, new Locale(language, country, variant));
+ }
if (offset != 0) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);