Coldfusion - 奇怪的解析时间结果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Coldfusion - 奇怪的解析时间结果相关的知识,希望对你有一定的参考价值。
我有一个时间字符串:
2018-08-09T13:19:22.479522-05:00
使用以下方法解析字符串:
parseDateTime(time, "yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX")
产生这个结果:
2018-08-09 14:27:21
我离格林威治标准时间是-4小时,所以我得到了小时差异,但为什么分钟不同?
更新:我确定问题是6位毫秒,但ColdFusion可以处理吗?截至目前,我正在使用left()
和right()
来解决这个问题。
答案
为什么分钟不同?
这是因为java.util.Date(这是ColdFusion与SimpleDateFormat一起使用的)不能处理microseconds,只有几毫秒。掩码".SSSSSS"
只允许CF / Java提取额外的数字,但一旦提取,整个值被视为毫秒数:
479522 milliseconds
...或479.522 seconds
...或7 minutes, 59 seconds and 522 milliseconds
因此,在这种情况下,它不会增加一秒的分数,而是将最终时间增加近八分钟。这就是为什么结果不如您所期望的那样。
Base Time 14:19:22.000
+ .522 milliseconds
+ 59.000 seconds
+ 7:00.000 minutes
====================
Final Time 14:27:21.522
tl;博士
ParseDateTime()无法处理特定日期/时间字符串,因此您必须DIY。
以上是关于Coldfusion - 奇怪的解析时间结果的主要内容,如果未能解决你的问题,请参考以下文章
使用 Coldfusion 解析 OFX(开放金融交换文档)
ColdFusion 2018和三个Char夏令时代码的BlazeDS DateTime解析错误