If I use a com.google.gwt.i18n.client.DateTimeFormat with my own pattern, 
like "yyyy-MM-dd", I run into the situation described in the Javadocs under 
"Additional Parsing Considerations" if the user enters a two digit year 00 
(most likely intending it to be the year 2000).

The following code:

      DateTimeFormat fmt = DateTimeFormat.getFormat("yyyy-MM-dd");
      
      Date d = fmt.parse("00-01-01");
      System.out.println(d + " getYear: " + d.getYear() + " getTime: " + 
d.getTime());
      long d1 = d.getTime();
      
      d = fmt.parse("01-01-01");
      System.out.println(d + " getYear: " + d.getYear() + " getTime: " + 
d.getTime());
      long d2 = d.getTime();
      
      long diff = d2 - d1;
      System.out.println((diff/1000.0/60/60/24/366));

Results in:

Thu Jan 01 00:00:00 EST 1 getYear: -1899 getTime: -62167374000000
Sat Jan 01 00:00:00 EST 1 getYear: -1899 getTime: -62135751600000
1.0

So, I believe that internally the date is on the right year, since the two 
dates are different by 366 days (apparently year 0 was a leap year), but 
when getting the year from it, it adjusts year 0 to 1.

This is messing up logic I have with a custom extension of DateTimeFormat 
to adjust how two-digit years are parsed - the first step in parse is 
super.parse(text), and then I do my own adjustment by 1900 or 2000 after 
that.  So, entries of 00 are being turned into 2001.

This is actually a Java "problem", and we can get into a long metaphysical 
discussion of whether there really should be a year 0 or not, but it does 
affect parsing, and I believe that the way that DateTimeFormat handles 
two-digit years supplied to a "yyyy" pattern brings it to the forefront.  
So, the question is, should GWT's Date emulation be faithful to its Java 
equivalent, or behave in a manner consistent with DateTimeFormat?

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to