我目前正在使用 .NET 开发一个 Web 服务,该服务返回有关系统中用户的信息。这个 Web 服务必须足够通用,才能被其他用 Java、PHP 等编写的系统使用。我的问题是它必须返回默认时区,我不确定应该使用什么格式来返回时区,以便其他系统可以轻松使用它。
你有什么建议吗?
我目前正在使用 .NET 开发一个 Web 服务,该服务返回有关系统中用户的信息。这个 Web 服务必须足够通用,才能被其他用 Java、PHP 等编写的系统使用。我的问题是它必须返回默认时区,我不确定应该使用什么格式来返回时区,以便其他系统可以轻松使用它。
你有什么建议吗?
描述时区最常用的方式是“Olson”时区信息数据库:http ://www.iana.org/time-zones 。
大多数编程语言和框架都有库来基于该 zoneinfo 数据库进行日期时间计算。在某些情况下,它甚至是内置的(我知道的 PHP),在 Python 中,默认实现称为pytz。如果您正在寻找 JavaScript 实现,这里有一个时区检测脚本和一个日期时间计算脚本。
只有当您使用非常晦涩的框架/语言时,您才需要自己围绕 zoneinfo 数据库实现日期时间逻辑。
由于您正在使用 .NET,您可能会发现这个问题很有帮助:.NET TimeZoneInfo from Olson time zone。考虑使用像noda-time这样的库,它放弃了 .NET 的 TimeZoneInfo 以支持 Olson 时区。
更多 .NET 信息:TimeZoneInfo vs. Olson 数据库
我建议使用 UTC 时区作为日期/时间。大多数语言/库都有将 UTC 转换为所需时区的方法。
如果您需要为用户表示实际的默认时区,请使用与 UTC 的偏移量(例如:东部时间为 -5)。