2

我敢肯定这是一个简单的!我有这个字符串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

只要我的电子邮件似乎来自正确的日期,我什至不关心时间部分。

4

3 回答 3

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));
于 2013-04-24T15:31:43.283 回答
0

尝试这个:

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

或这个

String reformattedStr = sdf.format(sdf.parse(date.toString()));
于 2013-04-24T15:24:40.907 回答
0

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

于 2013-04-24T21:02:34.557 回答