如何在Java中将这个“Tue Nov 13 14:35:04 +0000 2012”字符串格式转换为日期?

时间:2012-11-22 16:00:49

标签: java date

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

2 个答案:

答案 0 :(得分:6)

使用SimpleDateFormat,格式字符串为

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

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

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

答案 1 :(得分: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());