夜郎市的夏时制

hairy_marmite

我一直在设计用于调度界面的UI,用户可以在未来数小时内设置计时器。我希望能够处理日光节约时间,我认为这将非常简单。在检查time.golang包中的时间时,我遇到了以下不一致之处(如果确实如此)。

package main

import (
   "fmt"
   "time"
)

    func main(){
        const timeFormat = "2 Jan, 2006 3:04pm (MST)"
        test , err := time.Parse( timeFormat, "25 Oct, 2015 1:59am (BST)" )
        fmt.Println( test , test.UTC() , err)
        dur , _ := time.ParseDuration( "1m" )
        test = test.Add( dur )
        fmt.Println( test , test.UTC())

        fmt.Println( "--------------------"  )

        test , err = time.Parse( timeFormat, "25 Oct, 2015 2:01am (BST)" )
        fmt.Println( test , test.UTC() , err)
        test = test.Add( dur )
        fmt.Println( test , test.UTC())

        test = test.Sub( dur )
        fmt.Println( test , test.UTC())
     }   

我知道2015年10月25日凌晨2点(BST)将使时钟回到格林尼治标准时间(UTC)凌晨1点。如果我将BST的凌晨1:59增加一分钟,则时间的确会切换为GMT。

2015-10-25 01:59:00 +0100 BST 2015-10-25 00:59:00 +0000 UTC <nil>
2015-10-25 01:00:00 +0000 GMT 2015-10-25 01:00:00 +0000 UTC
--------------------
2015-10-25 02:01:00 +0000 BST 2015-10-25 02:01:00 +0000 UTC <nil>
2015-10-25 02:02:00 +0000 BST 2015-10-25 02:02:00 +0000 UTC

但是,如果我在BST凌晨2点之后解析时间,我希望它会切换到GMT,就像在过渡期间增加时间一样。万一Add例程调用了过渡代码,我会再加一分钟,但这也不会将时间恢复为GMT。

我原以为会发生以下情况之一

a)BST始终保持GMT + 1

b)在BST为“无效”以自动更改为正确的GMT时间的任何时间(无效的BST在10月的最后一个星期日之后的凌晨2点到次年3月的最后一个星期日之后的凌晨2点之间)

c)如果使用BST在某些日期内创建日期(可能在其他国家/地区的其他夏令时),则会引发错误。

否则,我将不得不检查用户是否在BST中输入日期,该日期是否在BST之外,然后将用户调整或强制为UTC时间,这与在库中内置夏令时功能的目的相违背。

在进行研究时,我发现了这个https://www.youtube.com/watch?v=-5wpm-gesOY,并确定它绝对不像我最初设想的那么简单...

任何见识或更好的方式来解决夏时制时间将不胜感激。

在Debian Wheezy上使用go版本1.0.2

编辑:使用1.3.3版重试并获得此输出

2015-10-25 01:59:00 +0100 BST 2015-10-25 00:59:00 +0000 UTC <nil>
2015-10-25 01:00:00 +0000 GMT 2015-10-25 01:00:00 +0000 UTC
--------------------
2015-10-25 01:00:00 +0000 GMT 2015-10-25 01:00:00 +0000 UTC <nil>
2015-10-25 01:01:00 +0000 GMT 2015-10-25 01:01:00 +0000 UTC

因此,似乎可以按预期在以后的版本中工作。...还发现了此问题夏令时和时区最佳实践因此,请仔细阅读。

谢谢。

彼得

Go和Microsoft之外的其他所有人一样,都使用IANA时区数据库,该数据库具有常规的更新,这些更新包含在当前的Go版本中。

您使用了在2012年3月发行的go1.0.3(发行历史)。随后添加了2015年英国时区数据。

始终使用Go的当前版本进行时区计算。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用DateTime类处理夏时制

来自分类Dev

时间戳,时区和夏时制

来自分类Dev

逗号和|之间的区别 在二郎

来自分类Dev

基于查询参数“郎= EN”春秋LocalResolver?

来自分类Dev

二郎牛仔中的冒号

来自分类Dev

如何存储重复日期并牢记夏时制

来自分类Dev

如何添加关于夏时制时区的每周时差

来自分类Dev

Angular / Javascript日期中的夏时制时间

来自分类Dev

在SQL Server中管理时区和夏时制

来自分类Dev

使用PHP生成iCal-夏时制问题

来自分类Dev

输入的内容是自我关闭,不应包含翡翠郎问题

来自分类Dev

从终端激活夜灯选项

来自分类Dev

Rails:导入时间戳,不同的时区和夏时制

来自分类Dev

使用TimeZoneInfo调整时区的夏时制偏移量

来自分类Dev

QuickBooks Web Connector TimeModified的偏移量不占夏时制时间

来自分类Dev

可以将夏时制更改时的filemtime与strtotime进行比较吗?

来自分类Dev

日期为夏时制时,GregorianCalendar.getTime()的默认时间不同

来自分类Dev

使用R中的POSIXct处理到夏时制的处理

来自分类Dev

欧洲/柏林的乔达时间日期时间夏时制

来自分类Dev

GNU find-[cma]时间选项和夏时制

来自分类Dev

java.time发现我正处于夏时制“缺口”

来自分类Dev

在计划安排备份时,我应该担心夏时制吗?

来自分类Dev

检查日期是否在没有pytz的时区的夏时制中

来自分类Dev

从时区对象返回了错误的夏时制偏移量

来自分类Dev

exiftool和geosync的问题,可能与夏时制有关

来自分类Dev

爪哇 - 的这种用法的java /郎/的ProcessBuilder <初始化>([Ljava /郎/字符串)。v可以是易受命令注入(声纳)

来自分类Dev

使用熊猫创建日/夜标记

来自分类Dev

如何调整GNOME夜灯的色相(强度)?

来自分类Dev

Windows夜灯自动触发器

Related 相关文章

  1. 1

    使用DateTime类处理夏时制

  2. 2

    时间戳,时区和夏时制

  3. 3

    逗号和|之间的区别 在二郎

  4. 4

    基于查询参数“郎= EN”春秋LocalResolver?

  5. 5

    二郎牛仔中的冒号

  6. 6

    如何存储重复日期并牢记夏时制

  7. 7

    如何添加关于夏时制时区的每周时差

  8. 8

    Angular / Javascript日期中的夏时制时间

  9. 9

    在SQL Server中管理时区和夏时制

  10. 10

    使用PHP生成iCal-夏时制问题

  11. 11

    输入的内容是自我关闭,不应包含翡翠郎问题

  12. 12

    从终端激活夜灯选项

  13. 13

    Rails:导入时间戳,不同的时区和夏时制

  14. 14

    使用TimeZoneInfo调整时区的夏时制偏移量

  15. 15

    QuickBooks Web Connector TimeModified的偏移量不占夏时制时间

  16. 16

    可以将夏时制更改时的filemtime与strtotime进行比较吗?

  17. 17

    日期为夏时制时,GregorianCalendar.getTime()的默认时间不同

  18. 18

    使用R中的POSIXct处理到夏时制的处理

  19. 19

    欧洲/柏林的乔达时间日期时间夏时制

  20. 20

    GNU find-[cma]时间选项和夏时制

  21. 21

    java.time发现我正处于夏时制“缺口”

  22. 22

    在计划安排备份时,我应该担心夏时制吗?

  23. 23

    检查日期是否在没有pytz的时区的夏时制中

  24. 24

    从时区对象返回了错误的夏时制偏移量

  25. 25

    exiftool和geosync的问题,可能与夏时制有关

  26. 26

    爪哇 - 的这种用法的java /郎/的ProcessBuilder <初始化>([Ljava /郎/字符串)。v可以是易受命令注入(声纳)

  27. 27

    使用熊猫创建日/夜标记

  28. 28

    如何调整GNOME夜灯的色相(强度)?

  29. 29

    Windows夜灯自动触发器

热门标签

归档