- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 java.text.SimpleDateFormat 解析 MS SQL 日期,但它给出了错误的输出。根据SimpleDateFormat的文档,它应该正确解析,或者可能是我遗漏了一些东西。
System.out.println( new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss.SSSSSSS" ).parse( "2016-02-29 13:02:50.2870000 +00:00" ) );
Incorrect Output with milliseconds format
>> Mon Feb 29 13:50:40 PKT 2016
但是,如果我在没有 SSSSS 的情况下尝试,它会给我预期的结果。
System.out.println( new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ).parse( "2016-02-29 13:02:50.2870000 +00:00" ) );
Correct Output without milliseconds format
>> Mon Feb 29 13:02:50 PKT 2016
为什么会有47分50秒的差别?
最佳答案
您已指定 2870000 毫秒 - 即 47 分 50 秒。
需要注意的是,在 SimpleDateFormat
中,S
是一个毫秒说明符,而不是“秒的分数”说明符。基本上,如果您指定的值超过 SSS
,结果就会很糟糕。
现在就您的问题而言 - 如果您从数据库获取日期,则根本不应该有一个 string 值来解析 - 您应该有一个 java.lang.String 值。 sql.Date
或 java.sql.Timestamp
。如果您将日期/时间数据存储为文本,那么您应该单独解决这个问题。
如果您必须进行此解析,我只需截掉最后四位数字并在末尾使用 .SSS
进行解析即可。无论如何,java.util.Date
不可能保持亚毫秒精度。
或者,您可以使用 java.time
或 Joda Time 作为更好的日期/时间 API - 并且 java.time
支持纳秒精度。 DateTimeFormatter
内,S
格式说明符确实表示“秒的分数”。
关于java - SimpleDateFormat 的毫秒输出错误 ( SSSSSSS ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35717573/
我正在使用 java.text.SimpleDateFormat 解析 MS SQL 日期,但它给出了错误的输出。根据SimpleDateFormat的文档,它应该正确解析,或者可能是我遗漏了一些东西
这是我要解码的内容: {"MessageDate":"2017-11-28T05:04:40.9611765"} 我省略了 JSON 结构的其余部分。 如何让 JSONDecoder 将该日期格式解析
我使用存储过程将日期时间戳存储在我的数据库中,使用一个名为 sysdatetime() 的函数和一种 varchar(max) 存储在此格式的数据库 yyyy-mm-dd hh:mm:ss.sssss
我是一名优秀的程序员,十分优秀!