zoukankan      html  css  js  c++  java
  • C# DateTime 将日期字符串格式化为带时区的日期格式

    需求:参数,一个日期字符串,不带时区的那种,一个TimeZoneID。将其转换为UTC时间。

                //可以获取所有的TimeZoneID
                IList<TimeZoneInfo> lst = TimeZoneInfo.GetSystemTimeZones();
    
                //当日期格式为 2021-05-31T09:00:00Z 时会转换异常。
                string str = "5/18/2021 7:00 AM";
    
                //目前尚未研究清楚这个是什么时间格式
                var aa = Convert.ToDateTime("2021-05-31T09:00:00Z").ToString("M/d/yyyy hh:mm:ss tt", System.Globalization.DateTimeFormatInfo.InvariantInfo);
                Console.WriteLine(aa); //5/31/2021 05:00:00 PM
    
                //(GMT-04:00) Eastern Time (US and Canada)
                var esternTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
    
                if (DateTime.TryParse(str, out DateTime dt))
                {
                    //var formattedDate = new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second, DateTimeKind.Unspecified);
    
                    ///获取对应的utc时间
                    var utcStartTime = TimeZoneInfo.ConvertTimeToUtc(dt, esternTimeZone);
                    var result = utcStartTime.ToString("yyyy-MM-ddTHH:mm:ssZ");
                    Console.WriteLine(result); //2021-05-18T11:00:00Z
                }
    
  • 相关阅读:
    常用词汇短语
    Java中的数据结构
    Java中的设计模式
    .NET中的编译、程序调用
    常用口语
    0. Angular框架原理
    茶叶
    NPOI自定义单元格背景颜色
    ASP.NET MVC添加Action就找不到
    navicat for mysql 导入SQL Server显示中文乱码解决办法
  • 原文地址:https://www.cnblogs.com/grj1046/p/14770029.html
Copyright © 2011-2022 走看看