SimpleDateFormat的毫秒问题

时间:2013-04-21 22:26:01

标签: java date datetime simpledateformat milliseconds

我尝试了这段代码,输出非常令人惊讶。为什么输出与输入不同?我是犯了错误还是SimpleDateFormat有问题?

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSS");
try {
    Date date = sdf.parse("2013-04-18-19.01.33.080");
    System.out.println(sdf.format(date)); // output: 2012-04-18-19.01.33.80
} catch (ParseException e) {
    e.printStackTrace();
}

编辑:事实上,我检查了我的代码并写了yyyy-MM-dd-HH.mm.ss.S而不是yyyy-MM-dd-HH.mm.ss.SSS。这是一个愚蠢的错误。谢谢大家的回答。

1 个答案:

答案 0 :(得分:3)

This works fine for me,如果它不起作用,请尝试明确设置Locale

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSS", Locale.ENGLISH);