2011-08-15 47 views
1

如何使用时区解析以下字符串到DateTime? 我应该使用CultureInfo吗? TimeZoneInfo?还是其他一些?如何解析此字符串作为日期时间

15.08.11 17:15:18.084867000 +02:00

我必须尝试使用​​以下格式:

var z = DateTime.Now.ToString("dd.MM.yy H:mm:ss.fffffff", CultureInfo.InvariantCulture); 

但它引发了异常。

+0

您是否需要**将**输入**为DateTime或**​​输出** DateTime作为该格式的字符串? –

回答

3

DateTime。 ParseExact是你想要的。

需要的实际格式字符串是dd.MM.yy HH:mm:ss.FFFFFFF00 zzz

var dateTest = "15.08.11 17:15:18.084867000 +02:00"; 
var format = "dd.MM.yy HH:mm:ss.FFFFFFF00 zzz"; 
var returnDate = DateTime.ParseExact(dateTest, format, System.Globalization.CultureInfo.InvariantCulture); 

的问题是,秒的小数部分只能是7位,并且需要垫格式字符串用零,以应付它。

存在一个问题,即秒必须必须是00的最后两位数,否则格式将不起作用,因此如果最后两位数字不是00,那么此格式字符串将不起作用为你。

您需要解析出整个字符串,但不包括秒的最后几位数字,但保持字符串的其余部分不变。如果有人想去那么麻烦,那么只需手动解析字符串就可以了。

对不起,我不能有更多的帮助。

+0

我需要一个毫秒和时区正确的格式。 –

+0

@Dmitriy Sosunov:我用正确的格式字符串更新了我的答案 –