java - SimpleDateFormat 的毫秒问题

标签 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。这是一个愚蠢的错误。感谢大家的回答。

最佳答案

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/

相关文章:

java - Eclipse 生成 JAXB 类 - cowardly 拒绝写入不存在的目录 "src"

java - DynamoDB 条件 ttl

java - 我怎样才能找到两个时间之间的差异?

java - 如何在 Java 中使用 AVRO 序列化日期

java - 两个 EAR 文件,相同的 JPA entitymanager,相同的事务 => 相同的 session ?

mysql - 如何从MYSQL中删除日期中的不同时间

javascript - 检查是否有两个以上的日期范围重叠

javascript - 是否有任何库可以识别任何格式的日期?

python - Pandas to_datetime错误 'unconverted data remains'

Java Jackson 序列化器,包括 FQCN