如何在 Ruby 中获取 UTC 日期字符串
How to get UTC date string in Ruby
在 JS 中你可以这样做:
var d = new Date()
d.toUTCString()
// Tue, 03 May 2022 09:21:04 GMT
在Ruby中有对应的吗?
Time.now.utc
=> 2022-05-03 09:54:04 UTC
或者如果您想要相同的格式:
Time.now.utc.strftime "%a, %d %b %Y %H:%M:%S GMT"
=> "Tue, 03 May 2022 09:54:12 GMT"
在Ruby的标准库中,extensions to the core Time
class添加了一些方便的方法,包括多种格式化时间对象的常用方法。
在您的例子中,您显然想要一个根据 RFC 2616, Section 3.3.1 中定义的规则格式化的字符串,以便在 HTTP 协议中使用。
require 'time'
utc_time = Time.now.utc
utc_time.httpdate
# => "Tue, 03 May 2022 10:14:37 GMT"
如果您可以控制数据的读取方式并且不受历史标准的严格约束,那么您可以尝试使用 ISO 8601 格式来代替,这种格式更易于解析并且具有正确排序的额外好处通常的字母顺序。这种时间格式(或其轻微变体)经常用于例如JSON 或 YAML 文件:
require 'time'
utc_time = Time.now.utc
utc_time.iso8601
# => "2022-05-03T10:14:37Z"
在 JS 中你可以这样做:
var d = new Date()
d.toUTCString()
// Tue, 03 May 2022 09:21:04 GMT
在Ruby中有对应的吗?
Time.now.utc
=> 2022-05-03 09:54:04 UTC
或者如果您想要相同的格式:
Time.now.utc.strftime "%a, %d %b %Y %H:%M:%S GMT"
=> "Tue, 03 May 2022 09:54:12 GMT"
在Ruby的标准库中,extensions to the core Time
class添加了一些方便的方法,包括多种格式化时间对象的常用方法。
在您的例子中,您显然想要一个根据 RFC 2616, Section 3.3.1 中定义的规则格式化的字符串,以便在 HTTP 协议中使用。
require 'time'
utc_time = Time.now.utc
utc_time.httpdate
# => "Tue, 03 May 2022 10:14:37 GMT"
如果您可以控制数据的读取方式并且不受历史标准的严格约束,那么您可以尝试使用 ISO 8601 格式来代替,这种格式更易于解析并且具有正确排序的额外好处通常的字母顺序。这种时间格式(或其轻微变体)经常用于例如JSON 或 YAML 文件:
require 'time'
utc_time = Time.now.utc
utc_time.iso8601
# => "2022-05-03T10:14:37Z"