如何使用时区将以下字符串解析为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 :(得分: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,则此格式字符串不适合你。
您需要解析整个字符串,不包括秒的最后数字,但保持字符串的其余部分不变。如果有人打算那么麻烦,那么只需手动解析字符串即可。
抱歉,我无法提供更多帮助。