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