Java DateFormat无法正确转换

时间:2014-01-18 18:16:38

标签: java date-formatting

我可能忽略了一些东西,但是从字符串到字段的解析对我来说是不正常的。 我有字符串:“20110705_060229”,格式为:“YYYYddMM_HHmmss”

这段代码:

Date triggermoment;

public void setTriggermoment(String triggermoment) throws ParseException {
  DateFormat formatter = new SimpleDateFormat("YYYYddMM_HHmmss");
  this.triggermoment = formatter.parse(triggermoment);
}

给我输出(当我在triggermoment上运行toString()方法时): Mon Jan 03 06:02:29 CET 2011

为什么它没有正确解析当天和月份?它应该是6月7日而不是1月3日。

提前致谢!

2 个答案:

答案 0 :(得分:3)

您必须使用y多年。 Y用于一周:

DateFormat formatter = new SimpleDateFormat("yyyyddMM_HHmmss");

输出:

Sat May 07 06:02:29 CEST 2011
  

应该是6月7日而不是1月3日

今年的第5个月可能,而不是6月。

答案 1 :(得分:2)

MM是月,而mm是munutes。 y表示年份,Y表示周年。

尝试使用yyyyddMM_HHmmss代替YYYYddMM_HHmmss