问题
I'm trying to parse a date from string but i get a wrong date result and dont understand why :/
String dateStr = "September 6, 2013 - 10:48";
SimpleDateFormat parser = new SimpleDateFormat("MMMM dd, YYYY - HH:mm", Locale.US);
Date date = parser.parse(dateStr);
When I look date result (in debugger) i see : Sun Dec 30 10:48:00 CET 2012 Can someone tell me where I'm wrong please ?
回答1:
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);
Use yyyy and not YYYY
Also don't use Date but use LocalDate
and LocalDateTime
.
Here is how you would do it using 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));
Note the HH
is for 24 hour time since you didn't include an AM or PM in your date string.
来源:https://stackoverflow.com/questions/61065816/why-i-get-a-wrong-result-when-parsing-a-date-from-string-with-simpledateformat