【问题标题】:How to change timezone by integer value?如何通过整数值更改时区?
【发布时间】:2018-12-26 20:08:59
【问题描述】:

我当前的Time 对象如下所示:

2015-01-10 17:13:00.000000000 +0000

虽然我需要它看起来像这样:

2015-01-10 18:13:00.000000000 +0100

我只想设置一个时区偏移值来接收它,而不知道字符串中的时区名称,例如:

my_date.set_timezone_offset(1)

我该怎么做?

【问题讨论】:

    标签: ruby-on-rails timezone timezone-offset


    【解决方案1】:

    所以要根据给定的偏移量更改时间,您必须使用 new_offset 方法,它是 DateTime 的一部分(不确定这是否适用于 Time 对象,如果不是,您可以尝试解析它) :

    time = "2015-01-10 17:13:00.000000000 +0000".to_datetime
    然后使用方法:

    time.new_offset("+10:00")

    这将返回 DateTime 并提供偏移量,同时根据该偏移量更改时间。

    【讨论】:

      【解决方案2】:
      DateTime.now.change(offset: "+0100")
      

      使用提供的偏移量返回日期时间

      【讨论】:

      • 奇怪,它适用于 DateTime,但不适用于 Time。 Time 对象也有其他选择吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      • 2019-04-06
      相关资源
      最近更新 更多