当时区有 dst 更新时,我如何安排活动
Posted
技术标签:
【中文标题】当时区有 dst 更新时,我如何安排活动【英文标题】:how can i shedule an event when there is a dst update in a timezone 【发布时间】:2017-09-20 18:05:36 【问题描述】:我们在世界各地的客户位置部署了物联网设备。它应该在我们的网络仪表板的每日每周和每月报告中提供一些打印的监控数据。问题是某些时区有夏令时,所以这些客户要求它应该基于夏令时。
我们想尝试的是
获取我们使用的时区列表 只要时区有 dst 更新,就会更新设备上的时间但我们可以找到如何在不同时区为 dst 更新触发事件,我们可以使用 python、ruby 或 shell 或任何有帮助的命令行工具。
更新 根据@rici 的回答,我用谷歌搜索了 zdump 并找到了这个
https://superuser.com/questions/805185/linux-command-to-check-wherever-this-day-is-a-dst-change-day-and-which-direction
这个答案将在 DST 开始和结束时给出。 我现在要做的是根据这些数据手动设置 crontab。 如何自动化调度任务?
【问题讨论】:
哪些操作系统本身不支持夏令时? 我不清楚你到底在问什么,但我建议你让所有设备在内部将时间/日期计算为 UTC,并且只有在需要时才让它们转换为本地时间将数据呈现给客户。标准日期时间库和其他优秀的库(如 dateutil)应该让这一点变得简单。 @jordanm 它没有通用操作系统。它是一个嵌入式设备。但我们可以远程设置时间。 请通过编辑您的问题详细解释时间系统如何在设备上工作! 你要求的东西太多,细节不够清楚。我投票结束时“过于宽泛”。我建议你把这个问题分解成不同的部分,分别研究。您可能会发现其中大部分都已得到答复。 【参考方案1】:您可以使用zdump
实用程序打印多个区域的当前时间。如果您每小时执行一次,并根据之前的输出检查 DST 指示器,您将看到哪些区域发生了变化。
我不知道您如何确定哪些 tmezones 很重要,或者您如何确定哪些设备位于哪个时区。
【讨论】:
如果需要,我可以使用 dst 创建一个时区列表。我们目前仅服务于选定的国家。时区当前只是存储在设备中的一个值。所以识别它没有问题以上是关于当时区有 dst 更新时,我如何安排活动的主要内容,如果未能解决你的问题,请参考以下文章
Django:RunTimeWarning:DateTimeField 在时区支持处于活动状态时收到了一个天真的日期时间
确定夏令时 (DST) 在 Java 中是不是在指定日期处于活动状态
如何修复 RuntimeWarning:DateTimeField 在时区支持处于活动状态时收到天真> datetime?