Converting EST to UTC in Rails?
我有一个工具,其中所有内容都保存为UTC,而GUI侧仅反映EST(特别是东部时间的EST,这是静态的UTC - 5.小时,不遵循夏令时。
因此,如果用户"选择"一段时间,他们就会选择一个EST时间,而我正在试图找出进行EST到UTC转换的最佳方法。 看起来"in_time_zone"onlly有1个东区,我假设"复活节时间(美国和加拿大)"真的是EDT(不是EST):
1 2 3 4 | ActiveSupport::TimeZone.us_zones.map(&:name) => ["Hawaii","Alaska","Pacific Time (US & Canada)","Arizona", "Mountain Time (US & Canada)","Central Time (US & Canada)", "Eastern Time (US & Canada)","Indiana (East)"] |
最好的办法是将用户选择的EST时间加上5小时(+ 5.hours)来存储为UTC吗?
谢谢!
Rails 2.3.5
在config / application.rb中
1 | config.time_zone = 'Eastern Time (US & Canada)' |
存储时,使用此:
1 2 3 4 5 6 7 8 9 | in_time = (params[:in] + ' Eastern Time (US & Canada)' ).to_datetime.in_time_zone('Eastern Time (US & Canada)').to_s if in_time.match('-0400') clock.in = (params[:in] + ' -4:00').to_datetime.in_time_zone('UTC') if params[:in] != '' elsif in_time.match('-0500') clock.in = (params[:in] + ' -5:00').to_datetime.in_time_zone('UTC') if params[:in] != '' else <HANDLE ERROR>"ERROR: CANNOT FIGURE OUT TIMEZONE IN #{params[:in]}." end |