2014-09-25 108 views
0

如何解析这个日期到C#中的日期时间?DateTime解析C#

2014-09-26t1505 

我尝试以下方法:

DateTime pickupDate = DateTime.ParseExact("2014-09-26t1505", "t", 
        CultureInfo.CreateSpecificCulture("en-us")); 

但看起来这是错误的,因为我得到以下错误:

String was not recognized as a valid DateTime. 

回答

4

你应该这样做。

string dateString = "2014-09-26t1505"; 
    string format = "yyyy-MM-dd't'HHmm"; 
    CultureInfo provider = CultureInfo.InvariantCulture; 
    try { 
    DateTime result = DateTime.ParseExact(dateString, format, provider); 
    Console.WriteLine("{0} converts to {1}.", dateString, result.ToString()); 
    } 
    catch (FormatException) { 
    Console.WriteLine("{0} is not in the correct format.", dateString); 
    } 

要使用ParseExact,您必须实际指定您正在使用的格式。不知道为什么你只是把“t”。有关更多信息和代码示例,请参阅MSDN

+0

谢谢@eddie_cat。它确实工作:) – Arry 2014-09-25 21:03:04

+0

你应该也可以转义'-',否则它将使用OS日期分隔符(可能是'/')。 – 2014-09-25 21:05:06

+1

@ThomasW。,有了'CultureInfo.InvariantCulture',它不会。 – Habib 2014-09-25 21:13:25

-1

日期时间pickupDate = ParseExact(“2014-09- 26t1505“,”yyyy-MM-ddtHHmm“,CultureInfo.InvariantCulture)

+0

@Rob:对不起,但这没有奏效。同样的错误。 – Arry 2014-09-25 21:01:52

+2

当日期字符串 – 2014-09-25 21:03:01

+0

中的小时和分钟之间没有冒号时,您添加了冒号谢谢,更正 – 2014-09-25 21:03:57