我收到一个像这样的字符串日期:2015-07-22.06.05.56.344
。我写了一个像这样的解析代码
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd.hh.MM.ss.ms");
try {
Date date = sdf.parse("2015-07-22.06.05.56.344");
System.out.println(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我得到了这样的输出:
Fri May 22 06:03:44 IST 2015
为什么它读错了?这是我的代码或java无法识别这种日期格式的问题吗?
答案 0 :(得分:4)
您需要使用MM
数月和mm
几分钟。
尝试将SimpleDateFormat
设置为:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd.hh.mm.ss.SSS");
检查javadoc以获取更多信息: SimpleDateFormat
答案 1 :(得分:3)
你的模式错误。该模式区分大小写。
mm代表分钟 MM站了一个月。
SS是毫秒
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd.hh.mm.ss.SSS");
有关详细信息,请参阅the SimpleDateFormat documentation
答案 2 :(得分:3)
MM
/ mm
的方式错误,mm
用于"分钟为小时"并且MM
用于"年月" SS
用于"毫秒" (或ms
,这意味着什么)HH
代替hh
,HH
用于"小时(0-23)" 所以,使用......
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd.HH.mm.ss.SS");
它为我输出Wed Jul 22 06:05:56 EST 2015