Coldfusion - 奇怪的 parsedatetime 结果
Coldfusion - odd parsedatetime results
我有一个时间字符串:
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()
来解决这个问题。
why is the minute different?
因为java.util.Date (which is what ColdFusion uses along with SimpleDateFormat) doesn't handle 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() 无法处理特定的 date/time 字符串,因此您必须自己动手。
我有一个时间字符串:
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()
来解决这个问题。
why is the minute different?
因为java.util.Date (which is what ColdFusion uses along with SimpleDateFormat) doesn't handle 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() 无法处理特定的 date/time 字符串,因此您必须自己动手。