当前位置:  开发笔记 > 后端 > 正文

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

如何解决《使用ASP.Net3.5/SQLServer2005在网站上使用TimeZones》经验,为你挑选了1个好方法。

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

这是怎么做的?

    所有DateTime值都作为UTC时间保存在数据库中

    每个用户都有一个UTC-Offset值存储在他的个人资料中

    显示datetime-value时,我从数据库中获取值,并应用用户偏移量.

这是要走的路吗?或者我错过了什么?



1> Jon Skeet..:

不要为用户存储UTC偏移量 - 这不足以了解全时区信息.您应该存储他们的Olson时区ID,例如"Europe/London".然后,您可以在当地时间显示任何UTC时间,同时考虑到历史变化,夏令时等.

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

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

您应该调查TimeZoneInfo类以获取更多信息 - 我不能说我自己已经使用了很多,但它是从.NET 3.5开始的方式.特别是,FindSystemTimeZoneById和GetSystemTimeZones将非常重要.

时区一般是痛苦的,但至少TimeZoneInfo比旧TimeZone类型提供更多的支持.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有