Bir Java 8 DateTimeFormatter oluşturmak için d/M/yy
gibi bir desen kullanırsam (örneğin DateTimeFormatter.ofPattern(pattern);
kullanarak (yalnızca ayrıştırmada değil, biçimlendirmede kullanacağım), iki harfli tüm yılları 20xx olarak yorumlayacaktır, örneğin 13/5/99
gibi bir dizeyi ayrıştırma Benim durumumda yanlış olan 2099-05-13
olarak yorumlanmalıdır (1999 yılında olması istenmişti).Java 8 DateTimeFormatter ile iki harf yıl ayrıştırmak için temel tarih nasıl değiştirilir?
Uygulamamda, OCR'd belgelerinden tarihleri ayrıştırmaya çalışıyorum; 90'lı yıllardan bu yana, tarihin 80 yıl öncesi ve 20 yıl öncesine dayanan eski SimpleDateFormat davranışı bana oldukça iyi uyuyor.Ama çeşitli nedenlerden ötürü tüm ayrıştırma mantığını yeni olarak değiştirmeyi düşünüyorum. Java 8 DateTimeFormatters
Java kaynak koduna baktığımda, bunun ReducedPrinterParser.BASE_DATE
sabitine göre yorumlandığını görüyorum, ancak bir biçimlendirmeden kendi biçimlendiricimi oluştururken kullanılan değeri değiştirmenin bir yolu göremiyorum. Bu mümkün değil mi yoksa iki harfli yılları ayrıştırma davranışını belirleme olasılığını kaçırdım mı?
d/M/yy
model için, örneğin, özel bir biçimlendiricisi oluşturabilir
[dize Ayrıştırma Olası yinelenen yerel tarih istenilen yüzyıl kullanmaz] (http://stackoverflow.com/questions/29490893/parsing-string-to-local-date-doesnt-use-desired-century) –