【问题标题】:Format for time zone in web service that will be used by many different platforms许多不同平台将使用的 Web 服务中的时区格式
【发布时间】:2012-04-17 11:15:53
【问题描述】:

我目前正在使用 .NET 开发一个 Web 服务,该服务返回有关系统中用户的信息。此 Web 服务必须足够通用,才能被其他用 Java、PHP 等编写的系统使用。我的问题是它必须返回默认时区,我不确定应该使用什么格式来返回时区,以便其他系统可以轻松使用。

你有什么推荐的?

【问题讨论】:

    标签: web-services time interop timezone dst


    【解决方案1】:

    描述时区最常用的方式是“Olson”时区信息数据库:http://www.iana.org/time-zones

    大多数编程语言和框架都有库来基于该 zoneinfo 数据库进行日期时间计算。在某些情况下,它甚至是内置的(我知道的 PHP),在 Python 中,默认实现称为pytz。如果您正在寻找 JavaScript 实现,则有一个时区 detection script here 和一个 datetime calculation script here

    只有当您使用非常晦涩的框架/语言时,您才需要自己围绕 zoneinfo 数据库实现日期时间逻辑。

    由于您使用的是 .NET,您可能会发现这个问题很有帮助:.NET TimeZoneInfo from Olson time zone。考虑使用像 noda-time 这样的库,它放弃了 .NET 的 TimeZoneInfo 以支持 Olson 时区。

    更多 .NET 信息她:TimeZoneInfo vs. Olson database

    【讨论】:

      【解决方案2】:

      我建议使用 UTC 时区作为日期/时间。大多数语言/库都有将 UTC 转换为所需时区的方法。

      如果您需要为用户表示实际的默认时区,请使用与 UTC 的偏移量(例如:东部时间为 -5)。

      【讨论】:

      • 我的问题是没有为我的服务发出的日期选择时区。问题是用户有一个默认时区,他们希望其他系统显示他们的日期。
      • UTC 偏移量是不够的,因为有多个时区具有相同的偏移量,但使用不同的 DST 规则。我当然想过发送一个完整的时区描述以及 DST 等规则,但如果有更好的方法就更好了。
      猜你喜欢
      • 2020-03-26
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2013-06-29
      • 1970-01-01
      • 2015-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多