相关疑难解决方法(0)

夏令时和时区最佳实践

我希望能够将这个问题及其答案作为处理夏令时的权威指南,特别是处理实际的变更问题.

如果您有任何要添加的内容,请执行此操作

许多系统依赖于保持准确的时间,问题在于由于夏令时改变时间 - 向前或向后移动时钟.

例如,在订单获取系统中有一个业务规则取决于订单的时间 - 如果时钟发生变化,规则可能不那么明确.如何保持订单的时间?当然有无数的场景 - 这只是一个说明性的场景.

  • 你是如何处理夏令时问题的?
  • 您的解决方案中有哪些假设?(在这里寻找背景)

同样重要的是,如果不是这样的话:

  • 你尝试了哪些不起作用?
  • 为什么不起作用?

我会对编程,操作系统,数据持久性和该问题的其他相关方面感兴趣.

一般答案很好,但我也希望看到细节,特别是如果它们只在一个平台上可用.

timezone datetime utc datetimeoffset dst

2021
推荐指数
20
解决办法
40万
查看次数

如何在PHP中检测不明确和无效的DateTime?

处理DateTime用户提供的本地值时,由于夏令时转换,很可能会产生无效或模糊的时间.

在其他语言和框架中,通常有一些方法,例如isAmbiguousisValid时区的某些表示.例如在.NET中,有TimeZoneInfo.IsAmbiguousTimeTimeZoneInfo.IsInvalidTime.

许多其他时区实现具有类似的方法或功能来解决这个问题.例如,在Python中,pytz库将抛出一个AmbiguousTimeErrorInvalidTimeError异常,你可以捕获.

PHP有很好的时区支持,但我似乎找不到任何解决这个问题的方法.我能找到的最接近的东西是DateTimeZone :: getTransitions.这提供了原始数据,因此我可以看到一些方法可以在此基础上编写.但它们是否已存在于某个地方?如果没有,任何人都可以提供良好的实施吗?我希望他们的工作方式如下:

$tz = new DateTimeZone('America/New_York');
echo $tz->isValidTime(new DateTime('2013-03-10 02:00:00'));       # false
echo $tz->isAmbiguousTime(new DateTime('2013-11-03 01:00:00'));   # true
Run Code Online (Sandbox Code Playgroud)

php timezone datetime dst

9
推荐指数
1
解决办法
756
查看次数

标签 统计

datetime ×2

dst ×2

timezone ×2

datetimeoffset ×1

php ×1

utc ×1