In JDK7, Unicode locale extensions were introduced and a calendar type can be specified for creating a Calendar, such as "th-TH-u-ca-buddhist". When an unknown (or unsupported) calendar is specified, the default calendar type of the locale should be used. For example, if "th-TH-u-ca-chinese" is given, the Thai Buddhist calendar should be created by Calendar.getInstance. Currently, a GregorianCalendar is created instead of the locale's default. There's the same problem with ja_JP_JP.