Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ruby中将Strftime转换为字符串?_Ruby_String_Strftime - Fatal编程技术网

如何在Ruby中将Strftime转换为字符串?

如何在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")

我想将这个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")
 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,它会。更新的答案反映了这一点。