为什么在使用SimpleDateFormat解析字符串中的日期时会得到错误的结果?(Java)



我试图从字符串中解析日期,但我得到了一个错误的日期结果,不明白为什么:/

String dateStr = "September 6, 2013 - 10:48";
SimpleDateFormat parser = new SimpleDateFormat("MMMM dd, YYYY - HH:mm", Locale.US);
Date date = parser.parse(dateStr);

当我查看日期结果(在调试器中(时,我看到:2012年12月30日上午10:48:00 CET有人能告诉我哪里错了吗?

String dateStr = "September 6, 2013 - 10:48";
SimpleDateFormat parser = new SimpleDateFormat(
"MMMM dd, yyyy - hh:mm", Locale.US);
Date date = parser.parse(dateStr);
System.out.println(date);

使用yyyy而不是yyyy

也不要使用Date,而是使用LocalDateLocalDateTime

以下是使用LocalDateTime的方法

String dateStr = "September 6, 2013 - 10:48";
DateTimeFormatter format = DateTimeFormatter.ofPattern(
"MMMM d, y - HH:mm",Locale.US);
LocalDateTime date = LocalDateTime.parse(dateStr,format);
System.out.println(date.format(format));

请注意,HH表示24小时,因为您的日期字符串中没有包含AM或PM。

最新更新