【发布时间】:2020-12-14 08:28:20
【问题描述】:
我在 SQL 中存储了一个日期时间,该日期时间是从 UTC 格式的 Azure 服务器中检索到的。
当我从 SQL 中检索此日期时间时,日期时间类型未指定...
在英国,我们目前处于 BST,如何根据一年中的时间将我从 SQL 收到的日期时间转换为 BST 或 GMT?
我的测试/生产服务器在 Azure 中,在 UTC 上运行。
回答
感谢@jonathon,我想出了以下扩展方法来解决我的问题。
public static DateTime CovertDateTimeToDateTimeGmt(this DateTime source)
{
var sourceUtc = DateTime.SpecifyKind(source, DateTimeKind.Utc);
var destinationTimezoneId = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time");
var sourceLocalTime = TimeZoneInfo.ConvertTimeFromUtc(sourceUtc, destinationTimezoneId);
return sourceLocalTime;
}
因为我从 SQL 收到的日期时间没有指定日期时间类型,所以我首先将其转换为指定类型的新日期时间。
【问题讨论】: