Convert DateTime String to UTC in rails

后端 未结 3 1372
逝去的感伤
逝去的感伤 2021-01-31 15:29

I have a string like this:

\"2010-01-01 12:30:00\"

I need that to convert to UTC from the current local time zone.

I tried this, but it

相关标签:
3条回答
  • 2021-01-31 15:44
    Time.parse("2010-01-01 12:30:00").getutc
    

    EDIT

    (grinding teeth while thinking about the nightmare which is Ruby/Rails date/time handling)

    OK, how about this:

    Time.zone.parse("2010-01-01 12:30:00").utc
    

    Note that Time.zone.parse returns a DateTime, while appending the .utc gives you a Time. There are differences, so beware.

    Also, Time.zone is part of Rails (ActiveSupport), not Ruby. Just so you know.

    0 讨论(0)
  • 2021-01-31 15:58

    For APIs you can use:

    utc_date = Time.parse("2013-05-31 00:00").utc.iso8601 #=> Result will be: 2013-05-30T21:00:00Z
    

    You can check these articles:

    • Working with time zones in Ruby on Rails
    • ISO8601 - Dates In Ruby
    0 讨论(0)
  • 2021-01-31 16:08

    In Rails 4 and above you can directly use in_time_zone

    "2010-01-01 12:30:00".in_time_zone
    #=> Fri, 01 Jan 2010 12:30:00 EST -05:00
    
    "2010-01-01 12:30:00".in_time_zone.utc
    #=> 2010-01-01 17:30:00 UTC
    
    0 讨论(0)
提交回复
热议问题