Java解析日期与/ SimpleDateFormat

时间:2013-04-24 15:03:30

标签: java date javamail simpledateformat

我确信这是一个简单的! 我有这个字符串String date = "Wed, 2 Jan 2013 12:17:15 +0000 (GMT)",我想解析为一个日期,以便能够设置JavaMail的发送日期。

这是我的完整代码

String dateString = "Wed, 2 Jan 2013 12:17:15 +0000 (GMT)";
SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
Date date = sdf.parse(dateString);
System.out.println("Date: " + date.toString());
email.setSentDate(oDate); // Assume email is initialised correctly

预期输出

Date: Wed, 2 Jan 2013 12:17:15 +0000 (GMT)

实际输出

Date: Wed Jan 02 12:17:15 GMT 2013

只要我的电子邮件似乎来自正确的日期,我就不会对时间组件感到困扰。

3 个答案:

答案 0 :(得分:0)

试试这个:

String reformattedStr = sdf.format(sdf.parse(dateString));

或者

String reformattedStr = sdf.format(sdf.parse(date.toString()));

答案 1 :(得分:0)

转换为字符串时,

Date.toString()会应用自己的格式:

Converts this Date object to a String of the form:

     dow mon dd hh:mm:ss zzz yyyy

您应该使用DateFormat来获取所需的字符串,即发布的代码示例:

System.out.println(sdf.format(date));

答案 2 :(得分:0)

在电子邮件中设置电子邮件之前,setSentDate方法将正确格式化日期。这与Date.toString()的不同。另请参阅MailDateFormat类。