[英]Convert timezone specific datetime string to datetime in C#
如何在C#中将Tue, 01 Nov 2016 02:00 PM EET
日期时间字符串转换为DateTime
? 有什么好的做法?
将DateTime.TryParseExact
与表示常规日期时间的格式字符串一起使用。
如果可以有多种格式,请使用DateTime.TryParseExact
重载,该重载采用一系列格式。
您可以在此处找到所有格式字符串:
例如,“ Tue”表示为“ ddd”,“ Nov”表示为“ MMM”等。
注意:字符串格式区分大小写,因此“ M”代表月份数字,“ m”代表分钟数字。 混淆它们会导致解析失败。
通过将时区缩写替换为时区偏移,可以使用DateTime.ParseExact
进行转换
string date = "Tue, 01 Nov 2016 02:00 PM EET";
DateTime dt = DateTime.ParseExact(date.Replace("EET", "+2"), "ddd, dd MMM yyyy hh:mm tt z", CultureInfo.InvariantCulture);
如果您想通过检查异常更安全的方法,则可以使用DateTime.TryParseExact方法
使用DateTime.TryParseExact ,其中使用此表构建格式字符串。
自定义日期和时间格式无法识别时区缩写。 您需要将它们作为字符串文字定界符进行转义。
var dt = DateTime.ParseExact("Tue, 01 Nov 2016 02:00 PM EET",
"ddd, dd MMM yyyy hh:mm tt 'EET'",
CultureInfo.InvariantCulture);
dt.Dump();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.