我正在尝试将Java的toString()函数生成的日期转换回日期对象。但是这种行为与我的期望不符。
我尝试过以下代码:
public static void main(String[] args) {
SimpleDateFormat sdfDate = new SimpleDateFormat("E MMM dd HH:mm:ss zzz YYYY");
Date now = new Date();
String strDate = sdfDate.format(now);
try {
System.out.println(strDate+"\n"+sdfDate.parse(strDate).toString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
然而,当我运行上面的内容时,我得到以下输出:
Mon Jul 25 16:58:04 BST 2016
Mon Jan 04 15:58:04 GMT 2016
我理解为什么时区正在恢复到格林威治标准时间,但是我对其对月和日的解释感到困惑。我假设我在日期格式字符串中弄乱了一些东西,但我不知道是什么。
我也尝试过“EEE MMM dd HH:mm:ss zzz YYYY”,但我也有同样的行为。谁能告诉我,我做错了什么?