我尝试了这段代码,输出非常令人惊讶。为什么输出与输入不同?我是犯了错误还是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
。这是一个愚蠢的错误。谢谢大家的回答。
答案 0 :(得分:3)
This works fine for me,如果它不起作用,请尝试明确设置Locale
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSS", Locale.ENGLISH);