DateTime转成世界时(UTC)且时间不变
将本地时区去除,转成UTC:
因为将本地时区转换成世界时的时候,会去除偏移量,导致时间变更,因此思路就是先追加偏移量,然后再进行转换。如以下代码所示:
var today = DateTime.Today;
if (today.Kind==DateTimeKind.Local)
{
//获取本地时区偏移量
var offset = TimeZoneInfo.Local.BaseUtcOffset;
//追加偏移量
today = today.Add(offset);
//转成世界时(过程中回去除偏移量)
today = TimeZoneInfo.ConvertTimeToUtc(today);
}
同理,只要知道偏移量就可以去除时区。