gpt4 book ai didi

ruby-on-rails - 在不更改时间的情况下在时区之间转换时间?

转载 作者:太空宇宙 更新时间:2023-11-03 17:47:34 25 4
gpt4 key购买 nike

我们的系统目前默认为悉尼时间。我正在尝试将一些报告本地化到另一个时区而不更改报告的每日间隔(即 00:00:00 到 23:59:59)。

每当我尝试将时间对象转换为另一个时区时,它都会将小时/分钟/秒与时区一起转换。

[16] pry(main)> t = Time.now
=> 2015-09-07 14:41:33 +1000

[17] pry(main)> t.in_time_zone("Darwin")
=> Mon, 07 Sep 2015 14:11:33 ACST +09:30

有人能给我指出正确的方向吗?

谢谢!

最佳答案

您可以使用 Time::use_zone覆盖给定 block 内的时区:

t = Time.parse('2015-09-07 14:41:33 +1000')
#=> 2015-09-07 14:41:33 +1000

Time.use_zone('Darwin') { Time.zone.local(t.year, t.month, t.day, t.hour, t.min, t.sec) }
#=> Mon, 07 Sep 2015 14:41:33 ACST +09:30

或者快捷方式:

Time.use_zone('Darwin') { Time.zone.local(*t) }
#=> Mon, 07 Sep 2015 14:41:33 ACST +09:30

*tt 转换为数组(使用 Time#to_a )并将其元素作为参数传递:

The ten elements can be passed directly to ::utc or ::local to create a new Time object.

关于ruby-on-rails - 在不更改时间的情况下在时区之间转换时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32431248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com