spe*_*der 3 c# datetime parsing
我有一堆字符串是从某个数据库转储的 DateTime 值......可能是 MySql。我无法控制结构。
字符串如下所示:
2011-05-17 00:00:00 等/格林威治标准时间
我找到了涉及在解析之前替换“Etc/GMT”的解决方案。这闻起来很糟糕。
是否有一步解决方案可以将此字符串转换为 DateTime 而不剥离时区信息?
使用指定的格式和特定于区域性的格式信息将日期和时间的指定字符串表示形式转换为其等效的 DateTime。字符串表示的格式必须与指定的格式完全匹配。
对于时髦的格式,您可以使用ParseExact. 而且您可能还想使用DateTimeStyles.AssumeUniversal:
String original = "2011-05-17 00:00:00 Etc/GMT";
DateTime result = DateTime.ParseExact(
original,
"yyyy-MM-dd HH:mm:ss 'Etc/GMT'",
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.AssumeUniversal);
Console.WriteLine(result.ToString()); // given my timezone: 5/16/2011 8:00:00 PM
Console.WriteLine(result.ToUniversalTime().ToString()); // 5/17/2011 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)