在 Ruby 中格式化日期



我有一个格式为05/22/2011 13:10 Eastern Time (US & Canada)的日期

如何将其转换为日期对象?这是我用来解析刺痛日期的方法,但我收到无效的日期错误。

str = "05/22/2011 13:10 Eastern Time (US & Canada)"
Date.strptime(str, "%d/%m/%Y %H:%M:%S %Z")

你的刺痛:05/22/2011 13:10 Eastern Time (US & Canada) .

以下是您的模式中的一些错误:

  • 月份是第一个参数
  • 一天是一秒
  • 这里没有任何秒数,只有小时和分钟

此外,您的字符串还包括日期和时间,因此您最好使用DateTime类而不是Date类:

Date.strptime(str, "%m/%d/%Y %H:%M %Z")
#=> Sun, 22 May 2011

DateTime.strptime(str, "%m/%d/%Y %H:%M %Z")
#=> Sun, 22 May 2011 13:10:00 -0500 

要使用日期时间,您应该首先需要它:

require 'date'
dt = DateTime.strptime("05/22/2011 13:10 Eastern Time (US & Canada)", "%m/%d/%Y %H:%M %Z")
#=> #<DateTime: 353621413/144,-5/24,2299161>
dt.to_s
#=> "2011-05-22T13:10:00-05:00"
dt.hour
#=> 13
...

调用 Date.strptime 时有 2 个错误

1)日期和月份颠倒

2)字符串中没有秒字段

相关内容

  • 没有找到相关文章

最新更新