将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;
    }

有谁有主意吗?

将DateTime转换为UTC并返回

对于这个问题,在。net 3.5中引入了一个特殊的数据类型:DateTimeOffset,它在功能上类似于DateTime,但它也存储了一个UTC偏移量