[threeten-dev] SimpleDateFormat and DateTimeFormatter produce different result for JapaneseDate

Frank Ding dingxmin at linux.vnet.ibm.com
Sat Apr 27 00:18:16 PDT 2013


Hi threeten guys
   Another issue was discovered in recent date time code (b87). Below is 
the test case.

         Locale jplocale = new Locale("ja", "JP", "JP");
         String str;
         String pattern = "GGGGyyyy\u5e74 MMMM d\u65e5";

         System.out.println("--- Calendar SimpleDateFormst ---");
         Calendar cal = Calendar.getInstance();
         cal.set(1989,0,8); // = Heisei 1

         SimpleDateFormat format = new SimpleDateFormat(pattern, jplocale);
         str = format.format(cal.getTime());
         System.out.println("\""+pattern+"\" "+str);

         System.out.println("--- JapaneseDate DateTimeFormatter ---");
         JapaneseDate date = JapaneseDate.of(1989,1,8);
         DateTimeFormatter dtf = 
DateTimeFormatter.ofPattern(pattern).withLocale(jplocale);
         str = date.format(dtf);
         System.out.println("\""+pattern+"\" "+str);

   The actual output is  (Converted Japanese characters to Unicode by 
native2ascii command)
 > --- Calendar SimpleDateFormst ---
 > "GGGGyyyy\u5e74 MMMM d\u65e5" \u5e73\u6210\u5143\u5e74 1\u6708 8\u65e5
 > --- JapaneseDate DateTimeFormatter ---
 > "GGGGyyyy\u5e74 MMMM d\u65e5" Heisei0001\u5e74 1\u6708 8\u65e5

   It looks like a bug in DateTimeFormatter.  Could anybody take a look 
at it and confirm?

Best regards,
Frank




More information about the threeten-dev mailing list