繁体   English   中英

在C#中将时区特定的datetime字符串转换为datetime

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM