如何将此字符串解析为DateTime

时间:2011-08-15 15:22:07

标签: c#

如何使用时区将以下字符串解析为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);

但它引发了一个例外。

1 个答案:

答案 0 :(得分: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,则此格式字符串不适合你。

您需要解析整个字符串,不包括秒的最后数字,但保持字符串的其余部分不变。如果有人打算那么麻烦,那么只需手动解析字符串即可。

抱歉,我无法提供更多帮助。