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

时间:2016-06-23 10:36:59

标签: java date simpledateformat

我发现在Java中生成代表一个propper 时间戳 String 会遇到一些问题。

所以我按照以下方式做了:

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

为什么我会注意到这种奇怪的行为?我错过了什么?如何解决此问题并获取秒的正确值?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

大写字母S是毫秒。请改用小写字母。

答案 2 :(得分:2)

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

查看SimpleDateFormat文档。