Pav*_* K. 6 ruby date strptime
为什么Ruby不会strptime将其转换为DateTime对象:
DateTime.strptime('Monday 10:20:20', '%A %H:%M:%S')
# => ArgumentError: invalid date
虽然这些工作?
DateTime.strptime('Wednesday', '%A')
# => #<DateTime: 2015-11-18T00:00:00+00:00 ((2457345j,0s,0n),+0s,2299161j)>
DateTime.strptime('10:20:20', '%H:%M:%S')
# => #<DateTime: 2015-11-18T10:20:20+00:00 ((2457345j,37220s,0n),+0s,2299161j)>
这看起来像是一个错误 - minitech 的评论是正确的。不过,目前有一个解决方法(因为您可能希望它现在起作用):
您可以将其拆分为空格,从工作日获取日期,然后从另一个字符串获取时间部分(使用_strptime提到的 minitech 方法)。然后,您可以将第一个日期的时间设置为第二个字符串的时间部分:
def datetime_from_weekday_time_string(string)
  components = string.split(" ")
  date = DateTime.strptime(components[0], '%A')
  time = Date._strptime(components[1], '%H:%M:%S') # returns a hash like {:hour=>10, :min=>20, :sec=>20} 
  return date.change(time)
end
2.2.2 :021 > datetime_from_weekday_time_string("Monday 10:20:20")
 => Mon, 16 Nov 2015 10:20:20 +0000 
2.2.2 :022 > datetime_from_weekday_time_string("Saturday 11:45:21")
 => Sat, 21 Nov 2015 11:45:21 +0000
2.2.2 :023 > datetime_from_weekday_time_string("Thursday 23:59:59")
 => Thu, 19 Nov 2015 23:59:59 +0000 
| 归档时间: | 
 | 
| 查看次数: | 286 次 | 
| 最近记录: |