我需要将以下字符串解析为DateTime对象:30/Nov/2009:16:29:30 +0100有简单的方法吗?
30/Nov/2009:16:29:30 +0100
z9ju0rcb1#
这难道不应该也适用于Rails吗?
"30/Nov/2009 16:29:30 +0100".to_datetime
bkkx9g8r2#
strptime允许您指定格式并将String转换为DateTime。
vuktfyat3#
我曾成功地:
require 'time' t = Time.parse(some_string)
g9icjywg4#
如果使用Rails,这会将date中的字符串转换为datetime:
"05/05/2012".to_time
文件参考:https://apidock.com/rails/String/to_time
4bbkushb5#
我使用了Time.parse("02/07/1988"),就像其他一些海报一样。一个有趣的问题是,当我打开IRB时,默认加载了Time,但是没有定义Time.parse,我必须使用require 'time'才能使它工作。这是Ruby 2.2的情况。
Time.parse("02/07/1988")
Time
Time.parse
require 'time'
jogvjijk6#
将字符串转换为日期:
# without timezone DateTime.strptime('2012-12-09 00:01:36', '%Y-%m-%d %H:%M:%S') => Sun, 09 Dec 2012 00:01:36 +0000 # with specified timezone DateTime.strptime('2012-12-09 00:01:36 +8', '%Y-%m-%d %H:%M:%S %z') => Sun, 09 Dec 2012 00:01:36 +0800
参考:https://ruby-doc.org/stdlib-3.1.1/libdoc/date/rdoc/Date.html
mqxuamgl7#
在Ruby1.8中,ParseDate模块可以转换这个和许多其他的日期/时间格式。2但是,它不能很好地处理年份和小时之间的冒号。3假设冒号是一个输入错误,实际上是一个空格,那么:
#!/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
ukqbszuj8#
您也可以使用给定时区解析日期时间字符串:
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
8条答案
按热度按时间z9ju0rcb1#
这难道不应该也适用于Rails吗?
bkkx9g8r2#
strptime允许您指定格式并将String转换为DateTime。
vuktfyat3#
我曾成功地:
g9icjywg4#
如果使用Rails,这会将date中的字符串转换为datetime:
文件参考:https://apidock.com/rails/String/to_time
4bbkushb5#
我使用了
Time.parse("02/07/1988")
,就像其他一些海报一样。一个有趣的问题是,当我打开IRB时,默认加载了
Time
,但是没有定义Time.parse
,我必须使用require 'time'
才能使它工作。这是Ruby 2.2的情况。
jogvjijk6#
将字符串转换为日期:
参考:https://ruby-doc.org/stdlib-3.1.1/libdoc/date/rdoc/Date.html
mqxuamgl7#
在Ruby1.8中,ParseDate模块可以转换这个和许多其他的日期/时间格式。2但是,它不能很好地处理年份和小时之间的冒号。3假设冒号是一个输入错误,实际上是一个空格,那么:
ukqbszuj8#
您也可以使用给定时区解析日期时间字符串: