在C#中将时区特定日期时间字符串转换为日期时间

时间:2016-11-01 12:38:08

标签: c# asp.net-mvc datetime

如何在C#中将Tue, 01 Nov 2016 02:00 PM EET日期时间字符串转换为DateTime?这样做的好习惯是什么?

4 个答案:

答案 0 :(得分:3)

DateTime.TryParseExact与表示通用日期时间的格式字符串一起使用。

如果您可以使用多种格式,请使用采用一系列格式的DateTime.TryParseExact重载。

您可以在此处找到所有格式字符串:

Custom Date and Time Format Strings

例如,"星期二"由" ddd"," Nov"通过" MMM"等

注意:字符串格式区分大小写,因此" M"代表月份数," m"代表分钟数。让它们混淆会导致解析失败。

答案 1 :(得分:2)

通过将区域偏移替换为区域偏移,您可以使用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方法

答案 2 :(得分:1)

使用DateTime.TryParseExact使用此table构建格式字符串。

答案 3 :(得分:1)

自定义日期和时间格式无法识别时区缩写。您需要将它们作为字符串文字分隔符进行转义。

var dt = DateTime.ParseExact("Tue, 01 Nov 2016 02:00 PM EET", 
                             "ddd, dd MMM yyyy hh:mm tt 'EET'", 
                             CultureInfo.InvariantCulture);
dt.Dump();
相关问题