首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用TimeZones 3.5 / Server 2005在网站上使用ASP.Net

利用TimeZones 3.5 / Server 2005在网站上使用ASP.Net
EN

Stack Overflow用户
提问于 2009-03-13 19:53:18
回答 2查看 856关注 0票数 1

我正试图确定,我应该如何在一个网络应用程序中实现本地时间。所有用户都已登录,没有匿名用户。他们需要在当地时间看到所有的时间值。

应该这样做吗?

  1. 所有DateTime值都保存为UTC-time在数据库中。
  2. 每个用户的配置文件中都有一个UTC偏移量值。
  3. 当显示日期时间值时,我从数据库获取值,并应用用户偏移量。

这是该走的路吗?还是我漏掉了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-03-13 19:58:19

不要为用户存储UTC偏移量--这不足以了解完整的时区信息。你应该储存他们的Olson时区ID。“欧洲/伦敦”。然后,考虑到历史变化、夏令节约等因素,您可以在当地时间显示任何UTC时间。

编辑:看起来TimeZoneInfo ID实际上并不是正常的Olson格式--但是只要有一些合理的东西可以显示给用户(作为一种选择),并且您可以从稍后检索区域的ID,这可能是可以的.不过,如果以后需要与其他系统进行互操作,您可能会遇到困难。

您应该向用户询问他们的时区(可能首先尝试通过JavaScript来猜测)--他们将拥有比您更多的信息。

关于这一点,您应该研究一下TimeZoneInfo类--我不能说我自己也使用过它,但这是.NET 3.5的发展方向。特别是,FindSystemTimeZoneByIdGetSystemTimeZones将非常重要。

时区在一般情况下是痛苦的,但至少TimeZoneInfo比旧的TimeZone类型提供了更多的支持。

票数 7
EN

Stack Overflow用户

发布于 2009-03-13 19:58:51

这听起来是我最直截了当的方法。我能看到的唯一的错误是一些地区(比如印第安纳州的部分地区和亚利桑那州的所有地区)不配合夏时制,所以你必须采取额外的预防措施,为它们显示正确的时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/644342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档