首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >围绕DateTimeOffset和TimeZones的困惑

围绕DateTimeOffset和TimeZones的困惑
EN

Stack Overflow用户
提问于 2012-11-09 08:44:40
回答 1查看 562关注 0票数 0

我目前正在开发一个.net应用程序,将在多个不同的国家和时区使用。后台数据库为sql server。

我一直在研究datetime、datetime2和datetimeoffset数据类型,我有点困惑。

一些例子可能对我的困惑有所帮助。假设我有一个表,其中包含产品数据以及其可用性的开始和结束日期。因此,对于开始日期和结束日期,数据将保存为utc日期,并包括时区。

如果我查询数据库并希望省略不在开始日期和结束日期之间的记录,并执行如下操作:

代码语言:javascript
复制
select * from products where stardate <= getutcdate() and enddate >= getutcdate;

然而,这是无效的,因为utc日期可能不反映在ie中需要数据的国家的时间。不应用时间偏移量。你知道我该怎么解决这个问题吗?

我的下一个问题是,当那个国家的夏令时发生变化时,偏移量会不会不同?即。数据会不会因为偏移量不正确而变得陈旧?

在我的应用程序中向上移动各层,然后进入我的.net代码。当我从数据库检索数据时,我创建了一个包含结束日期/开始日期的DateTimeOffset变量。如果我想写一些类似于我的sql中的代码来检查开始和结束日期,如果我使用DateTime.UtcNow,我不会遇到同样的问题吗?

如果能帮助我解决困惑,那就太好了。

EN

回答 1

Stack Overflow用户

发布于 2012-11-09 10:07:36

Utc日期是时区和夏令时中立的,因此,sql server上的所有计算都应仅以utc时间执行。时区信息(区域设置)存储在本地pc上,并在将date Time类从utc转换为本地utc主题时应用。对于网页,日期作为utc字符串传入,并通过date对象(tolocaltime)转换为本地时间。时间应在发送到sql server之前由网页或应用程序进行转换。

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

https://stackoverflow.com/questions/13300458

复制
相关文章

相似问题

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