Datetime 获取已连接网络的夏令时信息“;“嵌入式”;装置

Datetime 获取已连接网络的夏令时信息“;“嵌入式”;装置,datetime,embedded,ntp,Datetime,Embedded,Ntp,我正在开发一种连接到家庭网络的设备。 设备正在从网络中的本地Unix计算机获取当前时间戳(以秒为单位)。 我使用的是NTP协议,得到的是64位UTC时间戳 要将UTC时间戳转换为本地时间,我需要本地UTC偏移量和夏令时信息。我的本地UTC偏移量是已知的,但信息是否在夏令时并不容易获得。 我从搜索中发现,它可以根据月/日来确定,月/日来自UTC时间戳、TZ信息和本地夏令时方案。 这是可以做到的,但这是一个相当麻烦的过程,设备需要携带和维护夏时制信息 因为设备连接到Unix机器,Unix机器知道它是

我正在开发一种连接到家庭网络的设备。 设备正在从网络中的本地Unix计算机获取当前时间戳(以秒为单位)。 我使用的是NTP协议,得到的是64位UTC时间戳

要将UTC时间戳转换为本地时间,我需要本地UTC偏移量和夏令时信息。我的本地UTC偏移量是已知的,但信息是否在夏令时并不容易获得。 我从搜索中发现,它可以根据月/日来确定,月/日来自UTC时间戳、TZ信息和本地夏令时方案。 这是可以做到的,但这是一个相当麻烦的过程,设备需要携带和维护夏时制信息

因为设备连接到Unix机器,Unix机器知道它是否在夏令时

因此,我想知道是否有一种方法可以通过使用网络协议来确定Unix主机是否处于夏令时,而不是通过自己来确定。 我不想写一个telnet客户端,然后问“date”或“$TZ”。 我更喜欢简单得多,最好是使用UDP。如果返回的消息包含提示,我可以解析该消息

我考虑编写自己的UDP服务器,只返回信息。但我不喜欢这样做,因为它是专有的,不可移植

我的应用程序不需要严格遵循夏令时。错过前一个小时左右并不重要

如有任何建议,我们将不胜感激。 顺致敬意,
Aki Niimura

从Unix机器上获取夏令时信息似乎不是一个简单的方法(除非您编写一个专有的UDP服务器来提供此类信息),我决定实现一个软件例程来检查它是否在DST中。我发现,如果该例程只支持美国(大多数地区)当前的夏令时方案,它就不会那么复杂了。然而,这仍然超出了系统的承受能力。我预先计算了方程式中的许多项以加快计算速度。我仍然更喜欢使用网络协议来确定它是否在DST中,因为我当前的解决方案是不可移植的。但现在我对我所实施的一切都很满意。顺便说一句,验证程序相当棘手。