将DateTime转换为UTC并返回
本文关键字:返回 UTC DateTime 转换 | 更新日期: 2023-09-27 17:52:12
也许这听起来有点奇怪,但我实际上知道一个解决这个问题的方法。我最初的解决方案不起作用,我想知道为什么。它是Asp。. Net MVC应用程序。
这行不通:
public static DateTime ConvertToUTC(String userTimeZone, DateTime date)
{
var result = TimeZoneInfo.ConvertTimeToUtc(date, TimeZoneInfo.FindSystemTimeZoneById(userTimeZone));
return result;
}
public static DateTime ConvertToUserTime(string userTimeZone, DateTime date)
{
var result = TimeZoneInfo.ConvertTimeFromUtc(date, TimeZoneInfo.FindSystemTimeZoneById(userTimeZone));
return result;
}
我无法将时间转换回原来的时间。
这个成功了:
public DateTime ConvertToUTC(String userTimeZone, DateTime date)
{
var result = TimeZoneInfo.ConvertTimeToUtc(result, TimeZoneInfo.FindSystemTimeZoneById(userTimeZone));
return result;
}
public DateTime ConvertToUserTime(string userTimeZone, DateTime date)
{
var userTimezoneInfo = TimeZoneInfo.FindSystemTimeZoneById(userTimeZone);
var result = date.Add(userTimezoneInfo.BaseUtcOffset);
return result;
}
有谁有主意吗?
对于这个问题,在。net 3.5中引入了一个特殊的数据类型:DateTimeOffset,它在功能上类似于DateTime,但它也存储了一个UTC偏移量