好吧,Marcin 的回答非常正确,但我想指出您问题的根源。
写的时候,
string MessageRecieptDate = messageReceiptDate.Replace("T", " ").Remove(messageReceiptDate.Length-4);
实际上,您在字符串上删除了太多内容。在这一行之后,你的字符串会像;
2014-02-03 19:0
尝试Remove(messageReceiptDate.Length - 3);
改用。这将使您的字符串2014-02-03 19:00
正是我们想要的。
那么你应该使用与 .yyyy-MM-dd HH:mm
完全匹配的格式2014-02-03 19:00
。
string messageReceiptDate = "2014-02-03T19:00:00";
string MessageRecieptDate = messageReceiptDate.Replace("T", " ").Remove(messageReceiptDate.Length - 3);
IFormatProvider culture = new CultureInfo("en-US");
DateTime dt = DateTime.ParseExact(MessageRecieptDate, "yyyy-MM-dd HH:mm", culture);
Console.WriteLine(dt);
输出将是;
2/3/2014 7:00:00 PM
这里有一个DEMO。