如何在 C# 中将日期时间从 SQL 转换为 UTC 时间?
How to convert datetime from SQL to UTC time in C#?
日期在 SQL 数据库中存储为 datetime
数据类型。通过ADO.NET读取这个日期后,如何将收到的DateTime
转换为UTC时间?我的本地时间是美国东部时间。
例如 1:30 EST 下午(存储在 SQL 数据库中)必须是 6:30 UTC 下午。
如果所有记录都基于美国东部标准时间时区,那么您可以这样做:
DateTime dtFromSqlServer = new DateTime(2017,03,28); //GET field from DB
TimeZoneInfo tzInfo = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var output = TimeZoneInfo.ConvertTimeToUtc(dtFromSqlServer, tzInfo);
我以前用过 DateTime.ToUniversalTime。
DateTime dateEst = new DateTime(2017, 03, 28, 1, 30, 0); // This is where you'd pulled the DateTime value from your database.
DateTime dateUtc = dateEst.ToUniversalTime();
相比之下,您可以使用 DateTime.ToLocalTime 恢复到原始值。
请注意这些考虑了现在的 DST,这就是为什么这给了我 5:30,而不是 6:30...
日期在 SQL 数据库中存储为 datetime
数据类型。通过ADO.NET读取这个日期后,如何将收到的DateTime
转换为UTC时间?我的本地时间是美国东部时间。
例如 1:30 EST 下午(存储在 SQL 数据库中)必须是 6:30 UTC 下午。
如果所有记录都基于美国东部标准时间时区,那么您可以这样做:
DateTime dtFromSqlServer = new DateTime(2017,03,28); //GET field from DB
TimeZoneInfo tzInfo = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var output = TimeZoneInfo.ConvertTimeToUtc(dtFromSqlServer, tzInfo);
我以前用过 DateTime.ToUniversalTime。
DateTime dateEst = new DateTime(2017, 03, 28, 1, 30, 0); // This is where you'd pulled the DateTime value from your database.
DateTime dateUtc = dateEst.ToUniversalTime();
相比之下,您可以使用 DateTime.ToLocalTime 恢复到原始值。
请注意这些考虑了现在的 DST,这就是为什么这给了我 5:30,而不是 6:30...