【问题标题】:converting Time class object to RFC3339 in Ruby在 Ruby 中将 Time 类对象转换为 RFC3339
【发布时间】:2012-10-26 04:26:17
【问题描述】:

Google Calendar API(v2) 的时间相关查询需要采用 RFC3339 格式。当我在 'require "time"' 之后查找 Time 类时,我看不到 rfc3339 方法。

【问题讨论】:

    标签: ruby time iso


    【解决方案1】:

    A website提到RFC3339是RSS提要中最常见的日期格式,因此转换方法实现为#xmlschema,而不是#rfc3339。

    【讨论】:

    • 这应该是评论而不是答案吗? :)
    【解决方案2】:

    这有帮助吗? http://www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/DateTime.html#method-i-rfc3339

    DateTime.parse('2001-02-03T04:05:06.123456789+07:00').rfc3339(9)
                              #=> "2001-02-03T04:05:06.123456789+07:00"
    

    【讨论】:

    • 啊哈,DateTime.now.to_s 只是以 rfc3339 格式给出响应。谢谢!
    • 我想做的是在 RFC3339 中生成第二天的 00:00,并且应该已经对“+”进行了编码。所以我现在以Date.today.next.to_time.to_datetime.to_s.gsub('+','%2B') 结束。这看起来很像一个 JavaScript 方法链。嗯
    【解决方案3】:

    我选择这样做的方式是Time.now.utc.strftime('%FT%TZ') #=> "2013-08-15T06:13:28Z" 非常适合 HTML5 type='datetime' 输入字段。

    【讨论】:

      【解决方案4】:

      如果您使用 ActiveRecord,可以使用to_datetime 方法将时间转换为DateTime 对象。

      Time.now.to_datetime.rfc3339 #=> "2014-11-06T10:40:54+11:00" 
      

      请参阅:
      http://www.ruby-doc.org/stdlib-2.4.1/libdoc/date/rdoc/Time.html

      【讨论】:

      • 注意非 Rails 使用,需要主动支持。
      猜你喜欢
      • 2017-09-17
      • 2013-09-13
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多