2
以下のコードは例外です。例外..ここで何か間違っていますか?年が停止しようとしている場合、パーサーは知りませんuuuu
と上記のコメントで述べたJon SkeetとしてJava 8のLocalDateTimeとDateTimeFormatter
DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern(
"ddMMuuuuHHmmssSSS"
);
String currentTime=FORMATTER.format(LocalDateTime.now());
System.out.println(currentTime);
LocalDateTime parsedTime=LocalDateTime.parse(currentTime,FORMATTER);
09042016161444380
Exception in thread "main" java.time.format.DateTimeParseException: Text '09042016161444380' could not be parsed at index 4
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
I * suspect *問題は、パーサーが年をどこで止めるのか分からないことです.2016年ではなく20161年になる可能性があります。日付と時刻の部分の間に ''T ''を追加すると、働く個人的には可能な限りISO-8601フォーマットを使用することを強くお勧めします... –
Jonに感謝しますがパーサーはその年が4文字であるので、2016年に終了する必要があります。 – Krishan
@Krishan no、not正確に。 4以上は文字通り年を解釈することを意味するので、将来はかなり遠い2016161444380と解釈されます。 –