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解析错误

用 find 解析文件会给出不同文件的奇怪结果

Coldfusion调整大小使图像文件更大?

ColdFusion ImageWrite到Amazon S3

简单的 ColdFusion 脚本在 IE 中有效,但在 Firefox 中无效?