benim bazı yöntemini test ederken garip bir sorunu karşısında koşuyoruz ile düzgün çalışmıyor ve benim konuyla ilgili somut bir örnek elde etmek mümkün olmuştur görünüyor.LOCALDATE ve DateTimeFormatter Japon yerel ayar
Ben yerel tanımlanan o kendi tarih modelini kullanarak bir tarih ayrıştırmak mümkün değildir ja_JP_JP_#u-ca-japanese
yerel kullanıyorum.
Yanlış bir şey yapıyorum olup olmadığını merak ya ediyorum bu bir JDK hata ise.
ja_JP_JP_#u-ca-japanese
inşa etmek amacıyla lütfen unutmayın, sen the Locale javadoc dan alıntı başına new Locale("ja", "JP", "JP")
kullanmak gerekir:
Özel durumlar
uyumluluk nedenleriyle, iki uygun olmayan yerel ayarlar özel durum olarak muamele görürler . Bunlar ja_JP_JP ve th_TH_TH. Bunlar, varyantlar çok kısa olduğu için BCP 47'de kötü biçimlendirilmiştir. BCP 47'ye göçü kolaylaştırmak için, bunlar özellikle inşaat sırasında ele alınır. Bu iki durum (ve yalnızca bunlar) bir kurucunun bir uzantı oluşturmasına neden olur, diğer tüm değerler de Java 7'den önce olduğu gibi davranır.
Java, Japonca Japonca takvimi ile birlikte Japonca'yı temsil etmek için ja_JP_JP'yi kullandı. . Bu, Unicode yerel ayar anahtarını ca ("takvim" için) belirterek ve Japonca yazarak artık bir Unicode yerel uzantı kullanılarak temsil edilebilir. Yerel yapıcı argümanlar "Evet" çağrıldığında, "JP", "JP", uzantı, "u-ca-Japon" otomatik olarak eklenir.
Java Tay basamağı ile birlikte Tayland'da kullanıldığı gibi Tay temsil etmek th_TH_TH kullandı. Bu ve değer Tay ("sayı" için) Tek kodlu yerel anahtar nu belirterek, Unicode yerel uzantısı kullanılarak da artık sunulabilen. Yerel yapıcı argümanlar "th" çağrıldığında, "TH", "TH", uzantı, "u-nu-Tay" otomatik olarak eklenir.
sorunu gösterir verilen test durumu:
@Test
public void testJapaneseLocale() {
LocalDate specificLocalDate = LocalDate.of(2014, 10, 2);
Locale jpLocale = new Locale("ja", "JP", "JP");
DateTimeFormatter jpDateTimeFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT).withLocale(jpLocale);
String jpDate = specificLocalDate.format(jpDateTimeFormatter);
String jpPattern = DateTimeFormatterBuilder.getLocalizedDateTimePattern(FormatStyle.SHORT, null, Chronology.ofLocale(jpLocale), jpLocale);
LocalDate jpLocalDate = LocalDate.parse(jpDate, DateTimeFormatter.ofPattern(jpPattern, jpLocale));
assertEquals(specificLocalDate, jpLocalDate);
}
Bu kod vb ingilizce olarak diğer normal yerel ayar, için çalışır