2

如何Tue Nov 13 14:35:04 +0000 2012在Java中将日期字符串格式转换为日期?我知道,Date.parse(String)但我不知道我应该使用哪种格式作为日期。我是否必须修改字符串以便将其解析为日期,如果是,那么如何?

4

2 回答 2

6

使用SimpleDateFormat, 格式字符串为

"E MMM dd HH:mm:ss Z yyyy"

您应该明确使用Locale.US假设这些肯定会使用英文月/日名称。(例如,您不希望仅仅因为默认语言环境是法语就尝试解析法语名称。)

另外,不要忘记Date返回的值不知道原始时区——它将具有原始文本中表示的瞬间的正确值,但不要期望调用结果toString()使用相同的时区——Date.toString()始终使用默认时区。

于 2012-11-22T16:03:46.050 回答
0
 SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.US);
 Date test = sdf.parse("Tue Nov 13 14:35:04 +0000 2012");
 System.out.print(test.toString());
于 2012-11-22T16:20:29.923 回答