War*_*arz 14 .net c# timezone parsing
我有一个string s = "May 16, 2010 7:20:12 AM CDT我想转换为DateTime对象.在下面的代码中,我尝试使用已知格式解析文本时,无法转换日期格式错误.
timeStamp = matches[0].Groups[1].Value;
dt = DateTime.ParseExact(timeStamp, "MMM dd, yyyy H:mm:ss tt", null);
Run Code Online (Sandbox Code Playgroud)
时区以CDT UTC的形式出现......我认为是什么导致问题或我的格式?
试试这个:
string dts = "May 16, 2010 7:20:12 AM CDT";
DateTime dt =
DateTime.ParseExact(dts.Replace("CDT", "-05:00"), "MMM dd, yyyy H:mm:ss tt zzz", null);
Run Code Online (Sandbox Code Playgroud)
编辑:
对于夏令时,请考虑DateTime.IsDaylightSavingTime和TimeZone.CurrentTimeZone
小智 8
确保DateTime是明确的DateTimeKind.Utc.避免使用"GMT",这对于夏令时来说是模棱两可的.
var dt = new DateTime(2010, 1, 1, 1, 1, 1, DateTimeKind.Utc);
string s = dt.ToLocalTime().ToString("MMM dd, yyyy HH:mm:ss tt \"GMT\"zzz");
Run Code Online (Sandbox Code Playgroud)
它给出了输出:2010年12月31日19:01:01 GMT-06:00
有关详细信息,请参阅此链接
| 归档时间: |
|
| 查看次数: |
49288 次 |
| 最近记录: |