从C#中读取非常规时间格式

我想从C#中的Excel中读取非常规时间格式,Excel中的时间值是“29-Aug-01 11.23.00.000000000 PM”,而在Excel中,单元格格式是“常规”而不是“时间”。

现在我需要在Excel中读取时间,然后将时间分配到asp.net/c#中的日历时间,我怎样才能让程序理解时间格式?

大thx!

我的代码不起作用

DateTime expTime = DateTime.ParseExact(strDate, "dd-MMM-yy hh.mm.ss.fffffffff tt", System.Globalization.CultureInfo.CurrentUICulture.DateTimeFormat); 

我有类似的解决scheme,但更多的适应。

 string s = "29-Aug-01 11.23.00.000000000 AM"; DateTimeOffset myDate = DateTimeOffset.ParseExact( s, "dd-MMM-yy hh.mm.ss.fffffff00 tt", System.Globalization.CultureInfo.InvariantCulture); 

编辑:你不能多使用7'f'字符。

原始格式string失败,因为DateTimetypes不能表示纳秒。 以下格式string将工作:

 var expTime = DateTime.ParseExact(strDate, "dd-MMM-yy hh.mm.ss.fffffff00 tt", CultureInfo.InvariantCulture); 

这是有效的,因为在parsing过程中00字符被解释为文字并被忽略。

请注意,我传递CultureInfo.InvariantCulture而不是系统的UI文化。 这确保即使用户的UI文化被设置为其他语言,也可以使用英文月份缩写。 否则, DateTime.ParseExact将尝试使用用户的语言月份缩写来parsingdatestring