我有一个代表日期的字符串。 我不知道字符串的日期格式。但仅作为示例,它可能是
中的任何一种或网站用于在元标记中描述日期的任何有效格式(因此格式将是官方格式,而不是异想天开,但可能性的集合不小)。
我可以使用joda-time来解决这个问题吗? java.util.Date
或其他什么?
更新
我想我发现Javascript相当于我要找的东西
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
但我需要 Java 的答案。
答案 0 :(得分:1)
这不是一个真正的“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()部分可以明显改进。作为区域设置......