为什么我在使用 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
文档。
我发现生成 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
文档。