从C#中的T-Sql数据库读取以UTC保存的DateTime

hIp*_*pPy 19 c# t-sql datetime utc

我将t-sql db中的日期时间保存为UTC而不是本地时间,即保存后,它会丢失它是UTC日期ex : 2011-11-08 00:00:00.000. 在C#中从db读取时,它被读取为本地时间而不是UTC.例如:在读取dateTime值后,a dateTime.ToUniversalTime()给出了不同的值.

如何将db datetime值读取为UTC而不是本地时间?或者我应该在当地时间保存在t-sql中?

Jon*_*eet 28

好吧,如果你得到DateTimeKindUnspecified,你可以使用:

DateTime utc = DateTime.SpecifyKind(unspecified, DateTimeKind.Utc);
Run Code Online (Sandbox Code Playgroud)

这类问题只是我不喜欢DateTime原因之一.

  • @hIpPy:不,这很痛苦 - 但这基本上是数据库类型的问题.如果数据库支持,可以使用`DateTimeOffset`. (2认同)