如何改变 timezone 的 DateTime 在 Ruby?
节日日期和时间的阅读,写作和序列化变得令人讨厌。 我用 Ruby /和 Rails 3.0/ 并试图改变时区 a DateTime. /在 UTC/, 但不是时候本身。
我要这个:
我走得更近我走近这个,但这并不直观。
有没有更好的办法?
我要这个:
t = DateTime.now
t.hour
-> 4
t.offset = 0
t.hour
-> 4
t.utc?
-> true
我走得更近我走近这个,但这并不直观。
t = DateTime.now
t.hour
-> 4
t += t.offset
t = t.utc
t.hour
-> 4
t.utc?
-> true
有没有更好的办法?
没有找到相关结果
已邀请:
7 个回复
奔跑吧少年
赞同来自:
小明明
赞同来自:
Edit
: 此答案不会考虑评论对另一个答案提供的信息,即愿望是报告 'hours' 改变时区后它是一样的。
郭文康
赞同来自:
https://coderoad.ru/2695837/
涵秋
赞同来自:
http://ruby-doc.org/core/classes/Time.html
. 所以,获得当前的当地时间,然后在班次上增加它 UTC 并转换B. UTC, 像这样:
虽然,根据评论 Phrogz, 如果您只想存储临时标记,无论位置如何,那么只需使用当前时间 UTC:
奔跑吧少年
赞同来自:
指示 @Sam, 位移的变化是不够的,并且会导致错误。 抵抗时钟改善 DST, 转换必须如下进行:
二哥
赞同来自:
例如,所有时间都是字符串格式 "Pacific Time /US & Canada/ "
我发现的最佳方式是什么:
datetime.change/ActiveSupport::TimeZone[time_zone_string].formatted_offset/false//
八刀丁二
赞同来自:
config.time_zone = 'Mumbai'
可以在此处找到关于此问题的官方文档:
http://api.rubyonrails.org/cla ... .html
另一种选择是你 "Monkey Patch" 班级 'DateTime'.