为什么我在使用 SimpleDateFormat 格式化表示时间戳的字符串时遇到这种奇怪的行为?

Why I am experiencing this strange behavior using SimpleDateFormat to format a string representing a TimeStamp?

我发现生成 String 表示 Java 中的 时间戳 的一些问题。

所以我做了如下处理:

SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
String timeStamp = DATE_FORMAT.format(new Date());

问题是我得到了以下错误结果:'2016-06-23 12:25:85'

问题与本应代表秒的最后一位数字 (85) 有关。但是正如您所看到的,它不是秒的正确值,因为一分钟内秒的正确最大值是 60 而不是 85

为什么我会出现这种奇怪的行为?我错过了什么?我该如何解决这个问题并获得正确的秒数?

SS代表毫秒,ss代表秒。使用 yyyy-MM-dd HH:mm:ss

大写的S表示毫秒。请改用小写字母 s。

这是因为 SS 表示 毫秒 而不是秒,请尝试使用 ss.

查看 SimpleDateFormat 文档。