This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3235S:带时区的夏令时

Guru**** 2390735 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1257581/cc3235s-daylight-saving-with-timezone

器件型号:CC3235S

大家好。

我继续向以下主题提问:

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1256082/cc3235s-getting-utc-time-and-local-time-of-given-time-zone/4754782#4754782

是否可以使用 Clocksync_get ()以节省白天光线来调整时间? 我参考了代码、但看不到夏令时的任何调整、因此出现了这个问题。

谢谢。

普拉德普

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Pradeep、您好!

    ClockSync_get():  在需要时更新本地时间并在 localtime 中返回更新时间。
    该函数会调用:
    •  ClockSync_update ()-  
      通过 SNTP 请求 更新时间如果超过更新之间的时间、 例程还有条件地更新 NWP 时钟。
       
    • ClockSync_getRTC ()- 函数返回慢时钟时间(以秒为单位),该时间应作为 NTP 时间的偏移标准
    •  计算本地时间(相对于 NTP 时间的偏移量)(syncTime)
    • ClockSync_convert (syncTimelocaltime)- ClockSync_convert 此例程将 GMT 时间(gmTime)转换为 TM 结构中的本地时间(localtime)例程使用时区。
      SNTP - 从 NTP 服务器列表获取 UTC 时间  
      因此、根据您的 NTP 服务器、如果它考虑到 白天的光线节省、那么它应该会自动更新。
      如果您看到 设备访问的服务器已关闭。 您可以 使用以下方式手动设置时区:
      ClockSync_setTimeZone (int16_t timezone)-  此例程设置偏移时区。 (时区-以分钟为单位的 UTC 偏差)

      例如:  

    ================================
    选项:
    1)获得时间。
    2)更新时间。
    3)设置时区。
    4)获取时区。
    5) 5)切换到 AP 模式。
    6) 6)切换到站点模式。
    ================================
    请输入您的选择: 1

    当地时间= 8月10日星期四13:51:37 2023

    ================================
    选项:
    1)获得时间。
    2)更新时间。
    3)设置时区。
    4)获取时区。
    5) 5)切换到 AP 模式。
    6) 6)切换到站点模式。
    ================================
    请输入您的选择: 3

    请输入从 GMT 开始的偏移量(分钟):180
    ================================
    选项:
    1)获得时间。
    2)更新时间。
    3)设置时区。
    4)获取时区。
    5) 5)切换到 AP 模式。
    6) 6)切换到站点模式。
    ================================
    请输入您的选择: 1

    当地时间= 8月10日星期四16:52:10 2023

    ================================

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Avi:

    据我了解您的回复、当我进行 SNTP 操作时、将获得 UTC 时间、预计将针对夏令时进行调整。 是这样吗?  

    如果未调整从 NTP 获取的 UTC 时间以进行夏时制、该怎么办? 我们是否必须根据时区信息进行调整?

    谢谢。

    普拉德普  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    NTP 始终是 UTC 标准。 常见的方法是设置位置(国家/城市)并自行计算 UTC 偏移和夏令时。 另一种方法是使用 DHCP 选项、但 CC32xx 器件不支持此选项。

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    据我了解您的回复、当我进行 SNTP 操作时、将获得 UTC 时间、预计将针对夏令时进行调整。 是这样吗?   具体取决于您连接到的服务器。 SNTP 具有连接到的服务器的默认列表,并检索这些服务器的当前时间。 因此,如果您连接的服务器  不考虑夏时制,设备就不会这样  做,您需要通过 ClockSync_setTimeZone()手动调整时间。

    此外,如果您看一下   clockSync_update ()函数 clock_sync.c 中 有一个调用 sntp_getTime()的调用,它可以输入一个特定的服务器名称列表。 因此、如果您选择了正确的服务器、您应该能够将每日节省的费用计入其中。

    如果未调整从 NTP 获取的 UTC 时间以进行夏时制、该怎么办? 我们是否必须根据时区信息进行调整? 是的,当你调用 ClockSync_get ()时,我会欺骗你当前得到的时间,并相应地调整。

    此致、

    AVI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Avi 和 Jan。

    如果我必须进行调整以适应夏令时、可以使用以下规则:

    "夏令时通常 从三月的第二个星期日开始 ,到十一月的第一个星期日结束。"

    我可以更新这些天 UTC 与所选时区之间的时间差、以使用调整后的夏令时获取当地时间。  

    谢谢。

    普拉德普

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    该规则不是一般规则。 在不同的国家有许多例外情况。

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Jan、

    在这种情况下、您有何建议? 我们如何管理对夏令时的支持?

    我的器件具有云连接功能。 我可以有一些基于此连接的解决方案吗?

    谢谢。

    普拉德普

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Pradeep、您好!

    我没有任何确切的建议在这个弯折. 您应该检查要部署设备的每个国家/地区的规则。 使用一些基于云(服务器)的解决方案听上去不错。 重要的是进行 OTA 更新、以防规则发生更改(这可能在未来几年在欧盟国家/地区发生)。

    1月