gpt4 book ai didi

指定夏令时的 REST API 标准/最佳实践

转载 作者:行者123 更新时间:2023-12-04 17:20:34 24 4
gpt4 key购买 nike

我有一组 REST API。在某些情况下,我想根据给定时间获取数据,如下所示:

2020-02-06T00:00+09:30

如果我在澳大利亚时间(澳大利亚/阿德莱德),我会在 API 中发送上述日期以获取 2 月 6 日的相应数据。 +9.30 是澳大利亚中部标准时间的偏移量。

但是,有一种情况是指定时间落在该时区的夏令时。在上述时区中,从 4 月到 10 月遵循夏令时,偏移量为 (+10.30)。因此,如果我必须获取 9 月的数据,客户是否应该根据日期提供必要的偏移量(2 月日期为 +9.30,9 月日期为 +10.30)?

或者客户端是否应该发送带有当前时区偏移量的日期(忽略夏令时),服务器是否应该负责识别属于夏令时的日期并在处理前将日期标准化一小时?在 REST 中处理这种情况的正确方法是什么?请协助。

最佳答案

总的来说,我会说这些是很好的建议:

  • 不要使用偏移,使用 Olson ID。所以你返回的时间应该包括Australia/Adelaide,而不是+9.30。任何值得称重的日期库都可以理解 Australia/Adelaide
  • 如果您正在处理过去发生的事情,通常使用 UTC 会更容易。您的服务器可以对所有这些使用 UTC,并让客户端在查看之前处理到本地时区的翻译。但这往往最好在应用程序的 View /表示层中处理,而不是数据模型。这有帮助的一个例子是,当我们过渡到冬季时,“凌晨 1:30”会出现两次。
  • 对于 future “安排”的任何事情,通常最好使用“本地时间”+ 时区标识符。例如,如果您想要在一年中的每一天下午 2 点收到某样东西,您将需要知道它所在的时区以适应夏令时的变化。世界上某些国家/地区的 DST 规则每年都会更改,因此这使您的系统经得起 future 考验。

因此,如果您要在明年的特定(本地)时间与某人会面。目前还不能 100% 保证将是哪个 UTC 时间,因为本地时间规则可能会导致变化。大多数国家/地区的时区规则都非常稳定,但肯定不是所有国家/地区。

关于指定夏令时的 REST API 标准/最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66434141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com