如何从Ruby中的DB日期获取日期时间

时间:2015-11-09 13:28:57

标签: ruby date

我需要get time and date从数据库日期开始"2015-08-27T12:09:36Z"。我试过但没有得到任何解决方案date and time in different variable.

我需要在Ruby中获取它。我的申请中No rails

我使用下面的代码但没有得到。

Time.strptime("2015-08-27T12:09:36Z", "%Y-%m-%dT%H:%M:%S%z").in_time_zone

任何人都有经验吗?

由于

2 个答案:

答案 0 :(得分:0)

我没有足够的声誉来评论所以我发表评论作为答案,你在寻找吗

Time.now.strftime('%Y-%m-%dT%H:%M:%SZ')

这将提供您要求的模式。如果您使用

,Z代表时区
%z - Time zone as hour and minute offset from UTC (e.g. +0900)
          %:z - hour and minute offset from UTC with a colon (e.g. +09:00)
          %::z - hour, minute and second offset from UTC (e.g. +09:00:00)
  %Z - Time zone abbreviation name

检查更多

http://apidock.com/ruby/Time/strftime

您的评论后我更新的答案

require 'date'

DateTime.parse("2015-08-27T12:09:36Z").strftime('%Y-%m-%dT%H:%M:%SZ')

在您的代码中将 Time.strptime('') 更改为 DateTime.strptime('')

答案 1 :(得分:0)

首先,您需要require 'date'。 Ruby内置了DateTime类,没有require,但该库提供了更多功能。

如果您有一个以ISO-8601格式从数据库中检索到的字符串,并且您想将其转换为日期和时间,只需使用DateTime.iso8601(string)来获取DateTime对象。您可以在此之后提取您喜欢的日期和时间组件。

irb(main):001:0> require 'date' #=> true
irb(main):002:0> dt = DateTime.iso8601("2015-08-27T12:09:36Z") # DateTime object
irb(main):003:0> d = dt.to_date  # Date object
irb(main):004:0> t = dt.to_time  # Time object