仏陀は偉大なのです。
例えば、ちょうど今、
Calendar cal = Calendar.getInstance(); System.out.println(cal.get(Calendar.YEAR));
とやっても、タイでは「2006」が返って来ないかもしれません。試しに、ロケールをタイにした検証結果を載せてみます。
Calendar cal1 = Calendar.getInstance(Locale.JAPAN); System.out.println("JAPAN: " + cal1.get(Calendar.YEAR)); Calendar cal2 = Calendar.getInstance(new Locale("th", "TH")); System.out.println("THAI : " + cal2.get(Calendar.YEAR)); 【結果】 JAPAN: 2006 THAI : 2549
種明かしは、Calendarのソースにあります。以下、JDKのソースの引用です。
private static Calendar createCalendar(TimeZone zone, Locale aLocale) { if ("th".equals(aLocale.getLanguage()) && ("TH".equals(aLocale.getCountry()))) { return new sun.util.BuddhistCalendar(zone, aLocale); } return new GregorianCalendar(zone, aLocale); }
自動的にsun.util.BuddhistCalendarが返って来てしまうわけです。タイのエンジニアは困らないんでしょうかねえ?