将 UTC 日期字符串转换为本地日期时间

时间:2021-06-25 11:49:52

标签: c# .net-5 datetimeoffset

我需要将 UTC dateTime 转换为本地我已经尝试解析但无法这样做?

public class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("UTC DateTime Convertor....!");

        var giveDateTime = "22-06-2021T14:10:45.000";
        var utcGivenDateTime = DateTime.Parse(giveDateTime);???
        var localConvertedTime ???


        Console.WriteLine("Given Date: ", giveDateTime);
        Console.WriteLine("Given UTC DateTime ", utcGivenDateTime);
        Console.WriteLine("Converted Local Time ", localConvertedTime);


        Console.ReadLine();
    }
}

1 个答案:

答案 0 :(得分:1)

要转换为本地时间,您需要将其转换为的时区:

var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Brazilian Standard Time");
    
var localConvertedTime = TimeZoneInfo.ConvertTimeFromUtc(utcGivenDateTime, timeZoneInfo);

不幸的是,本机时区当前是特定于系统的。如果您需要与系统无关,您可能需要查看第三方库,例如 NodaTime