如何在Ruby中将Strftime转换为字符串?
我想将这个strftime解析成一个字符串,然后隔离day变量如何在Ruby中将Strftime转换为字符串?,ruby,string,strftime,Ruby,String,Strftime,我想将这个strftime解析成一个字符串,然后隔离day变量 '2015-04-15T11:15:34' 我知道在python中,您可以执行以下操作: datetime.strptime(element, "%Y-%m-%dT%H:%M:%S") from datetime import datetime from datetime import timedelta 导入以下内容后: datetime.strptime(element, "%Y-%m-%dT%H:%M:%S")
'2015-04-15T11:15:34'
我知道在python中,您可以执行以下操作:
datetime.strptime(element, "%Y-%m-%dT%H:%M:%S")
from datetime import datetime
from datetime import timedelta
导入以下内容后:
datetime.strptime(element, "%Y-%m-%dT%H:%M:%S")
from datetime import datetime
from datetime import timedelta
Ruby中是否有一个模块或函数可以有效地实现这一点?是的。它也被称为strtime
使用给定模板解析给定的日期和时间表示形式,并创建日期对象。与strftime不同,strptime不支持指定标志和宽度
DateTime.strTime'2001-02-03T04:05:06+07:00',“%Y-%m-%dT%H:%m:%S%z”
=>
在包含所需的日期库之后,您可以调用结果DateTime对象上的day来获取日期。例如
irb(main):016:0> require 'date'
=> true
irb(main):017:0> date = DateTime.strptime('2015-04-15T11:15:34', "%Y-%m-%dT%H:%M:%S")
=> #<DateTime: 2015-04-15T11:15:34+00:00 ((2457128j,40534s,0n),+0s,2299161j)>
irb(main):018:0> date.day
=> 15
对。它也被称为strtime
使用给定模板解析给定的日期和时间表示形式,并创建日期对象。与strftime不同,strptime不支持指定标志和宽度
DateTime.strTime'2001-02-03T04:05:06+07:00',“%Y-%m-%dT%H:%m:%S%z”
=>
在包含所需的日期库之后,您可以调用结果DateTime对象上的day来获取日期。例如
irb(main):016:0> require 'date'
=> true
irb(main):017:0> date = DateTime.strptime('2015-04-15T11:15:34', "%Y-%m-%dT%H:%M:%S")
=> #<DateTime: 2015-04-15T11:15:34+00:00 ((2457128j,40534s,0n),+0s,2299161j)>
irb(main):018:0> date.day
=> 15
如果知道格式是iso8601,可以使用DateTime.iso8601,否则可以使用DateTime.parse,它还处理一些其他约定
2.2.1 :001 > require 'date'
=> true
2.2.1 :002 > dt = DateTime.parse('2015-04-15T11:15:34')
=> #<DateTime: 2015-04-15T11:15:34+00:00 ((2457128j,40534s,0n),+0s,2299161j)>
2.2.1 :003 > dt.year
=> 2015
2.2.1 :004 > dt.month
=> 4
2.2.1 :005 > dt.day
=> 15
2.2.1 :006 > dt.hour
=> 11
2.2.1 :007 > dt.zone
=> "+00:00"
如果知道格式是iso8601,可以使用DateTime.iso8601,否则可以使用DateTime.parse,它还处理一些其他约定
2.2.1 :001 > require 'date'
=> true
2.2.1 :002 > dt = DateTime.parse('2015-04-15T11:15:34')
=> #<DateTime: 2015-04-15T11:15:34+00:00 ((2457128j,40534s,0n),+0s,2299161j)>
2.2.1 :003 > dt.year
=> 2015
2.2.1 :004 > dt.month
=> 4
2.2.1 :005 > dt.day
=> 15
2.2.1 :006 > dt.hour
=> 11
2.2.1 :007 > dt.zone
=> "+00:00"
这是否能够处理日期后的所有事情,如小时、分钟、秒,即……'T11:15:34'?我也不介意删除这些信息。它当前位于一个哈希中,其中时间是键。@Codestudio是的,如果您使用DateTime.strptime而不是Date.strptime,它会。更新的答案反映了这一点。它是否能够处理日期后的所有事情,如小时、分钟、秒,即……'T11:15:34'?我也不介意删除这些信息。它当前位于一个哈希中,其中时间是键。@Codestudio是的,如果您使用DateTime.strptime而不是Date.strptime,它会。更新的答案反映了这一点。