ama*_*eur 1 c# sql datetime cultureinfo utc
我目前正在开发带有后端 SQL Server 数据库的 ac# Web 应用程序。我在日期方面有一些问题需要解决。
该应用程序在 GMT 时间托管在 Web 和数据库服务器上。用户分布在 3 个不同的时区 CEST、MSK、ALMT,随着时间的推移,该网站有可能推广到其他国家。
在目前的代码中,我在 SQL 中使用 DateTime.Now 和 GETDATE(),并且根据服务器的位置,这是 GMT。
我的问题是,考虑到不同的文化等,日期戳应该以什么形式存储在数据库中。应该是 utc 日期吗?下列情况应如何处理?有标准做法吗?
所有内容在创建时都应采用 UTC(不是服务器的时区;UTC),并在显示之前转移到用户的时区。
要获取 UTC 时间,请DateTime.UtcNow在 Web 服务器和GETUTCDATE()数据库上使用。
要将DateTime指定 UTC 时间的值转换为任何其他时区:
var dt = DateTime.UtcNow;
var tz = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var localTimeInNewYork = TimeZoneInfo.ConvertTimeFromUtc(dt, tz);
Run Code Online (Sandbox Code Playgroud)
另请参阅MSDN 上的转换时区时间。
| 归档时间: |
|
| 查看次数: |
4681 次 |
| 最近记录: |