Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 简单日期格式读取月份错误_Java_Date_Simpledateformat - Fatal编程技术网

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您是对的,修正了我的答案。