我确信这是一个简单的!
我有这个字符串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
只要我的电子邮件似乎来自正确的日期,我就不会对时间组件感到困扰。
答案 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类。