Answers:
DateTime.strptime允许您指定格式并将String转换为DateTime。
%d/%b/%Y:%H:%M:%S %Z
这不行吗?
"30/Nov/2009 16:29:30 +0100".to_datetime
require 'active_support/all'
然后 "30/Nov/2009 16:29:30 +0100".to_datetime
(您实际上并不需要所有的active_support扩展,但祝您好运找出有选择地需要哪些扩展)
to_datetime
添加到String
对象上所需的全部:require 'active_support/core_ext/string/conversions'
这会将date中的字符串转换为datetime:
"05/05/2012".to_time
在Ruby 1.8中,ParseDate模块将转换此日期格式和许多其他日期/时间格式。但是,在年份和小时之间,它不能很好地处理冒号。假设冒号是一个错字并且实际上是一个空格,那么:
#!/usr/bin/ruby1.8
require 'parsedate'
s = "30/Nov/2009 16:29:30 +0100"
p Time.mktime(*ParseDate.parsedate(s)) # => Mon Nov 30 16:29:30 -0700 2009
您还可以解析具有给定时区的日期时间字符串:
zone = "Pacific Time (US & Canada)"
ActiveSupport::TimeZone[zone].parse("2020-05-24 18:45:00")
=> Sun, 24 May 2020 18:45:00 PDT -07:00