问题描述
我收到的日期像这样的字符串: 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无法识别此日期格式?
1楼
您需要使用MM
数月,使用mm
数分钟。
尝试将SimpleDateFormat
设置为此:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd.hh.mm.ss.SSS");
检查javadoc以获取更多信息:
2楼
您的模式错误。 该模式区分大小写。
mm代表分钟MM代表月。
SS是毫秒
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd.hh.mm.ss.SSS");
有关更多详细信息,请参见
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