Java 简单日期格式读取月份错误
我正在将日期字符串转换为历元时间,然后再转换回来,但是当我转换为历元时,解析日期字符串时似乎忽略了月份Java 简单日期格式读取月份错误,java,date,simpledateformat,Java,Date,Simpledateformat,我正在将日期字符串转换为历元时间,然后再转换回来,但是当我转换为历元时,解析日期字符串时似乎忽略了月份 String timeString = "15 Aug 2005 13:07:58.035"; Date dateTime = null; SimpleDateFormat sdf = new SimpleDateFormat("DD MMM yyyy hh:mm:ss", Locale.US); try { dateTime = sdf.parse(timeString); } ca
String timeString = "15 Aug 2005 13:07:58.035";
Date dateTime = null;
SimpleDateFormat sdf = new SimpleDateFormat("DD MMM yyyy hh:mm:ss", Locale.US);
try {
dateTime = sdf.parse(timeString);
} catch (ParseException e) {
e.printStackTrace();
}
long convert = dateTime.getTime();
System.out.println(str);
System.out.println(convert);
Date epochToString = new Date(convert);
System.out.println(epochToString.toString());
这是输出
15 Aug 2005 13:07:58.035
1105812478000
Sat Jan 15 13:07:58 EST 2005
当我手工计算历元时间时,日期确实是2005年1月15日,因此出于某种原因,在我的格式中MMM值被忽略
编辑:
我还应该注意,我将格式标记更改为MM,并尝试在字符串中使用数字表示,但得到了相同的精确结果。这是因为
DD
表示一年中的天。您希望在月份中的某一天使用dd
。看
我建议您在24小时内使用
HH
。这是不对的,我在字符串的后半部分使用了mm,而javadoc实际上说MMM是几个月的代币,谢谢。@pianoisland您是对的,修正了我的答案。