我尝试了这段代码,结果非常令人惊讶。为什么输出与输入不同?是我弄错了还是 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
。这是一个愚蠢的错误。感谢大家的回答。
最佳答案
This works fine for me , 如果它对你不起作用,请尝试显式设置 Locale
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSS", Locale.ENGLISH);
关于java - SimpleDateFormat 的毫秒问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16136860/