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

huangapple go评论98阅读模式
英文:

Why I get a wrong result when parsing a date from string with 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
有人能告诉我我哪里做错了吗?

英文:

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

得分: 3

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。

英文:
		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.

huangapple
  • 本文由 发表于 2020年4月7日 01:49:02
  • 转载请务必保留本文链接:https://go.coder-hub.com/61065816.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定