gpt4 book ai didi

ruby-on-rails - 在 Ruby 中如何将 ISO 8601 日期转换为 UNIX 时间戳?

转载 作者:数据小太阳 更新时间:2023-10-29 07:43:36 24 4
gpt4 key购买 nike

我一直在尝试 Time.parse() 和 Date.parse(),但看不出来。

我需要将“2007-12-31 23:59:59”形式的日期转换为 UNIX 时间戳。 PHP 的 strtotime() 函数之类的东西会很完美。

最佳答案

您给出的示例的 ISO 8601 时间格式为“2007-12-31T23:59:59”,而不是“2007-12-31 23:59:59”(注意 T 在数据和时间组件之间)。

在 Ruby 中,如果您需要 time 库,您可以解析格式正确的 ISO 8601 日期。如果您的日期使用空格而不是 T 来分隔日期和时间,只需在将其传递给 Time.iso8601 之前替换它:

>> require 'time'
=> true
>> Time.iso8601("2007-12-31 23:59:59".sub(/ /,'T'))
=> Mon Dec 31 23:59:59 -0500 2007

要将这种格式的时间转换为 Unix 时间戳,只需使用 .to_i:

>> Time.iso8601("2007-12-31 23:59:59".sub(/ /,'T')).to_i
=> 1199163599

如果您需要更多的格式灵 active ,Time.parse 应该可以解决问题;但是,我会小心地在生产代码中使用它,因为它可能会为格式错误或无效的输入提供意外的值,而不是抛出异常。

关于ruby-on-rails - 在 Ruby 中如何将 ISO 8601 日期转换为 UNIX 时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3775544/

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