gpt4 book ai didi

ruby - XML 中的奇怪日期格式,转换为 Ruby DateTime 对象

转载 作者:数据小太阳 更新时间:2023-10-29 08:51:40 25 4
gpt4 key购买 nike

这很难用谷歌搜索。我有一个一百万行长的 XML 文档,我正在使用 Ruby 来解析它并删除我不关心的条目。我的标准之一是创建日期。这些 XML block 中有看起来很有趣的日期

<attribute name="datemodified" type="date">362895460.21263897418975830078</attribute>
<attribute name="datecreated" type="date">356831173.15324598550796508789</attribute>

我从未见过格式完全如此的日期。如果您执行类似 Time.now.to_f 的操作,它们看起来很相似。尽管如此,我还是不知道如何将它们转换为 Ruby DateTime 对象。如果您甚至可以确定这些时间是如何创建的,或者它们的含义,那将非常有帮助。

如果有帮助的话,这个 XML 文件最初是由一个名为“Things”的 Mac OS X 应用程序创建的。

感谢阅读!

更新:我又创建了两个条目并记录了我创建它们的时间:

从 JULY-02-2012 9:57 AM

<attribute name="datemodified" type="date">362941035.01687598228454589844</attribute> 
<attribute name="datecreated" type="date">362940986.89370900392532348633</attribute>

从 2012 年 7 月 2 日上午 9:58 开始

<attribute name="datemodified" type="date">362941107.69538801908493041992</attribute>
<attribute name="datecreated" type="date">362941080.53793197870254516602</attribute>

我无法精确到秒,但我确实让它们相隔大约一分钟......这使得它们看起来实际上是秒......但是......来自某个随机日期。也许是开发者的生日 :)

快速计算一下,随机日期似乎是在 2000-12-31 16:09:43 -0800 左右,或者可能是 01/01/01,以便于内存……而 978336000 秒.

最佳答案

Time.at 方法将自 1970 年以来的秒数转换为 Time 实例:

[1] pry(main)> Time.at 362895460.21263897418975830078
=> 1981-07-02 00:17:40 -0400

如果该日期不正确,但单位是秒,您可以添加一个常量以获得正确的日期,例如

[2] pry(main)> Time.parse('2001-01-01') - Time.at(0)
=> 978325200.0

关于ruby - XML 中的奇怪日期格式,转换为 Ruby DateTime 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11297704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com