无法解析格式的日期字符串,如2013-09-17T05:15:27.947

Ank*_*kit 7 .net c# datetime parsing

我试图解析格式的日期:

2013-09-17T05:15:27.947

这是我的代码

String MessageRecieptDate = messageReceiptDate.Replace("T", " ").Remove(messageReceiptDate.Length-4);
DateTime dt = new DateTime();
IFormatProvider culture = new CultureInfo("en-US");
dt = DateTime.ParseExact(MessageRecieptDate, "dd MMM", culture);
Run Code Online (Sandbox Code Playgroud)

但它每次都会给出一些格式异常.似乎我错过了一些基本的东西.

Mar*_*zek 10

"dd MMM"当你的约会对象时,我不知道你为什么要使用格式字符串"2014-02-03T19:00:00".有两种格式没有任何共同之处.

输入的正确格式字符串是"yyyy-MM-ddTHH:mm:ss":

string value = "2014-02-03T19:00:00";
DateTime dateValue = DateTime.ParseExact(value, "yyyy-MM-ddTHH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)


Rap*_*aus 4

应该做什么:

//without ParseExact
var t1= DateTime.Parse(dt);

//you don't know how many milliseconds will be in your string, 
//and want absolutely use ParseExact anyway
var t2= DateTime.ParseExact(dt.PadRight(27, '0'), "o", culture);

//you know you'll always have 3 chars for milliseconds.
var t3= DateTime.ParseExact(dt, "yyyy-MM-ddTHH:mm:ss.fff", culture);
Run Code Online (Sandbox Code Playgroud)