【问题标题】:How to handle Globally time_zone in system?如何在系统中处理全局时区?
【发布时间】:2016-04-13 12:38:20
【问题描述】:

我正在开发名为 Activity 的模块,用户可以在任何国家/地区进行任何活动,例如您在 Facebook 或其他社交媒体网站上发表评论。每当评论发生时,全球每个用户都会看到该评论刚刚发生。

问题:我有 WCF API,它将以 UTC 时间格式存储数据。可以从 iPad、iPhone 和其他设备访问 API。我必须在每日活动计数中做出回应。用户将在不同的时区,因此活动计数将因不同的时区而异。像 CST 时间是 -06:00 偏移量和 IST 时间 +05:300 偏移量。如何根据不同的时区从服务器中查找计数。每当他们要求从服务器检索数据时,他们都没有指定任何时区。如何处理这种关闭情况​​。

使用 datetimeOffset 有什么不同吗? datetimeOffset 可以解析成 JSON 吗?

谢谢 奇拉格。

【问题讨论】:

    标签: c# asp.net wcf-ria-services


    【解决方案1】:

    我在我的系统中使用 ISO 8601 来节省时间。 在那里您将包含时区信息。

    https://en.wikipedia.org/wiki/ISO_8601

    在.net 中它是“o”或“o”。 https://msdn.microsoft.com/en-us//library/az4se3k1(v=vs.110).aspx

    还支持 DateTimeOffset。

    【讨论】:

      【解决方案2】:
      1. 您可以将 UTC 时间转换为服务器上的本地时间。这要求客户端在请求中包含其本地时区。这将允许服务器发回客户端本地时区的时间戳。

        DateTimeOffset 类在服务器端提供帮助。 DateTime 类只能表示 UTC 和“本地”时间,就像服务器的本地时间一样。 DateTimeOffset 允许您用任何偏移量表示时间,但时区是信息的一部分。时区定义了诸如夏令时之类的规则,这些规则不包含在 DateTimeOffset 中存储的信息中。

      2. 或者您可以在客户端将 UTC 时间转换为本地时间。服务器响应中的时间戳始终采用 UTC,但客户端知道它自己的时区并在显示时间戳之前执行转换。

      在大多数情况下,我认为 2. 是最简单的解决方案,但这需要客户端具有有关时区的信息,并且该信息非常复杂。

      【讨论】:

        猜你喜欢
        • 2020-09-18
        • 2023-01-13
        • 2015-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多