从传入的字符串中获取日期和时间

时间:2017-08-21 22:12:02

标签: c# vb.net datetime

进来的字符串,我不确定我是否可以控制它是这样的形状:

Mon Aug 11 2016 12:17:19 GMT-0500 (Central Daylight Time)

我尝试过诸如

之类的方法
Convert.ToDateTime()

CType

但是所有人都抛出异常,说这不是转换为日期时间的有效字符串。 那我应该怎么转换呢?

2 个答案:

答案 0 :(得分:1)

我建议阅读Custom Date and Time Format Strings

在这种情况下,相应的格式字符串将是:

string sample = "Mon Aug 11 2016 12:17:19 GMT-0500";
var dt = DateTime.ParseExact(sample.Replace("GMT-0500", "-05:00"), 
                             "ddd MMM dd yyyy H:mm:ss",                           
                             CultureInfo.InvariantCulture);

答案 1 :(得分:0)

您可以按空格分割字符串。然后你将拥有一个数组,你可以创建一个合适的字符串来转换为日期时间。

  

这只是一个概念,你必须详细说明。

例如,您可能需要了解月份编号是什么 这可以通过制作所有月份和相应数字的字典来完成。

string dateReceived = "Mon Aug 11 2016 12:17:19 GMT-0500 (Central Daylight Time)"

string[] dateParts = dateReceived.split(' ');

string date = dateParts[2] "/" dateParts[1] "/" dateParts[3]
DateTime dt = Convert.ToDateTime(date);