gpt4 book ai didi

java - 将字符串转换为日期的问题

转载 作者:行者123 更新时间:2023-11-29 08:37:36 24 4
gpt4 key购买 nike

我通过正则表达式从一个大文档中提取日期,并想将它们保存到 Java 日期中。这适用于大多数日期,但不适用于 12 月的日期。
我认为这与它的书写方式有关,因为当我将其拼写从“Dec”更改为“Dez”时,它们可以转换。

SimpleDateFormat dateFormat01 = new SimpleDateFormat("HH:mm, dd MMM yyyy (zzz)");

String s01 = "20:49, 13 Jan 2005 (UTC)"; //working
String s02 = "20:49, 13 Dez 2005 (UTC)"; //working
String s03 = "20:49, 13 Dec 2005 (UTC)"; //not working

Date d01 = dateFormat01.parse(s01);
Date d02 = dateFormat01.parse(s02);
Date d03 = dateFormat01.parse(s03);

最佳答案

如您所见,解析有时会起作用

String s01 = "20:49, 13 Jan 2005 (UTC)"; //working
String s02 = "20:49, 13 Dez 2005 (UTC)"; //working
String s03 = "20:49, 13 Dec 2005 (UTC)"; //not working

原因很简单,您需要在 SimpleDateFormat 中使用 Locale,否则 java 永远无法理解 "20:49, 13 Dec 2005 (UTC)"是 December(英语)还是 Dezember(德语)

... new SimpleDateFormat("HH:mm, dd MMM yyyy (zzz)", Locale.EN);

当我看到代码在哪里工作或不工作时,我可以推断,您的 java 正在德国本地化环境中运行。因此 2005 年 1 月 13 日 可以是:

2005 年 1 月 13 日(英语语言环境)或 2005 年 1 月 13 日(德语语言环境),这两种情况巧合地以相同的字符序列开始....

December/Dezember 情况并非如此

关于java - 将字符串转换为日期的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42720752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com