如何从 Azure IoT 中心获取设备上的日期时间?

How can I get datetime on my device from Azure IoT Hub?

我需要更新一些通过 Azure IoT 中心连接到 Azure 的设备的日期和时间。

有没有办法从 IoT 中心获取日期时间?

如何管理时区?

什么时区将提供 Azure IoT 中心?

还有其他选择吗?

不知道 Azure IoT 中心中存在这样的 API 表面,但是,您的选项包括 -

  • 对 public 时间服务器池 (pool.ntp.org) 使用 NTP。我会使用来自 NIST 或其他资金比 ntp-org 实体更好的主机 - https://tf.nist.gov/tf-cgi/servers.cgi
  • 编写一个 Azure 函数,该函数 returns 一个 date/time 字符串,该字符串基于您从设备发送的位置查询参数(GET 或 POST)。例如http://somethingSomething.azurewebsites.net/api/now?location=NewYork
  • 使用现成的 public REST API,即 http://worldtimeapi.org/
  • "Abuse" 通过 HTTPS 的 IoT 中心端点 returns date/time 即使是 400 错误请求,例如:

    $ curl https://poorlyfundedskynet.azure-devices.net -i
    
    HTTP/1.1 400 Bad Request
    Content-Length: 157
    ..snip other headers..
    Date: Wed, 11 Dec 2019 16:16:51 GMT
    

    注意:仅限 HTTPS。好处:您与同一位主持人交谈。缺点:不能保证时间戳是准确的,但其他所有服务也是如此。拥抱一点风险! :)

编辑:
链接到此 relevant GitHub issue(在 C 的 Azure IoT 中心客户端 SDK 下)。