【问题标题】:Convert Local Time Zone to PST Time Zone in C#在 C# 中将本地时区转换为 PST 时区
【发布时间】:2012-01-14 12:54:37
【问题描述】:

假设我现在系统中的时区是 +5GMT

现在在我的机器上01/14/2012 05:52PM 我想把它转换成 PST 时区,比如

1/14/12 4:52:50 AM PST

反之亦然 PST 到 GMT

【问题讨论】:

    标签: c# timezone


    【解决方案1】:
    TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Pacific SA Standard Time");
    
    DateTime newDateTime = TimeZoneInfo.ConvertTime(existingDateTime, timeZoneInfo);
    

    您可以查看可用时区的完整图表here

    也可以看看Converting Between Any Two Time Zones

    【讨论】:

      【解决方案2】:

      受@HarisHasan 上述回答的启发,无论您的代码在哪里运行,以下方法都会产生 PST:

          public static DateTime GetPacificStandardTime()
          {
              var utc = DateTime.UtcNow;
              TimeZoneInfo pacificZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
              var pacificTime = TimeZoneInfo.ConvertTimeFromUtc(utc, pacificZone);
              return pacificTime;
          }
      

      【讨论】:

        【解决方案3】:
        TimeZoneInfo.FindSystemTimeZoneById("Pacific SA Standard Time");
        

        如果我们在 Linux 中部署应用程序将会失败(如果是 .NET Core),发现这个不错的库可以在 Windows 和 Linux“TimeZoneConverter”中提供正确的 TimeZoneInfo,使用它我们可以像这样进行转换

        using TimeZoneConverter;
        
        TimeZoneInfo pst =TZConvert.GetTimeZoneInfo("Pacific Standard Time");
        DateTime newDateTime = TimeZoneInfo.ConvertTime(existingDateTime, pst);
        
        

        【讨论】:

          【解决方案4】:

          以下代码转换为 PST。

          TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
          

          【讨论】:

            猜你喜欢
            • 2016-02-13
            • 1970-01-01
            • 2011-08-13
            • 2022-01-09
            • 1970-01-01
            • 2015-11-25
            • 2018-01-17
            • 2014-08-12
            • 1970-01-01
            相关资源
            最近更新 更多