gpt4 book ai didi

java - 将未知日期格式的字符串表示形式转换为 Java 中的日期

转载 作者:行者123 更新时间:2023-11-30 10:56:02 25 4
gpt4 key购买 nike

我有一个代表日期的字符串。 我不知道字符串的日期格式。但仅作为示例,它可以是任何

  • 2015-10-14T16:41:42.000Z
  • 2015-10-14T19:01:53.100+01:00
  • 2015-10-14 05:20:29

或网站可用于在元标记中描述日期的任何有效格式(因此格式将是官方的,而不是异想天开,但可能性不小)。

我可以使用 joda-time 来解决这个问题吗? java.util.Date 或其他什么怎么样?

更新

我想我找到了我正在寻找的 Javascript 等价物

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

但我需要一个关于Java的答案。

最佳答案

好吧,这不是一个真正的“java”解决方案,但是如果您找到了一个 Javascript 解决方案,那么您可以使用 ScriptEngine 在 java 中使用 Javascript 解决方案。 .

只是有点快和脏...:)

这是一个示例代码:

public static void main(String[] args) throws ScriptException, ParseException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
String[] dateStrings = new String[] {
"2015-10-14T16:41:42.000Z",
"2015-10-14T19:01:53.100+01:00",
"2015-10-14 05:20:29" };

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
for (String d : dateStrings) {
String script = "new Date('" + d + "')";
Object eval = engine.eval(script);
Date parsed = sdf.parse(eval.toString().replace("[Date ", "").replace("]", ""));
System.out.println(eval + " -> " + parsed);

}

}

打印出:

[Date 2015-10-14T16:41:42.000Z] -> Wed Oct 14 18:41:42 CEST 2015
[Date 2015-10-14T18:01:53.100Z] -> Wed Oct 14 20:01:53 CEST 2015
[Date 2015-10-14T03:20:29.000Z] -> Wed Oct 14 05:20:29 CEST 2015

eval.toString() 部分可以明显改进。作为区域设置...

关于java - 将未知日期格式的字符串表示形式转换为 Java 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33134422/

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