转换字符串" 2017-01-01T12:00:33:123456Z + 02"到DateTime

时间:2016-04-12 11:57:24

标签: c# datetime

我正在尝试将此字符串从客户转换为日期时间,以将其存储在我的数据库中。

我尝试了几个approches,但似乎没有任何效果。 我需要UTC时间的偏移,所以我想我需要用zz做点什么。

这是有效的:

string   test = "2008-06-11T16:11:20.0904778Z";
DateTime publishingTimeStamp = DateTime.ParseExact(test, "o", CultureInfo.InvariantCulture,
             DateTimeStyles.None);

但是客户的字符串略有不同,所以我尝试了这个:

string   test = "2017-01-01T12:00:33:123456Z+02"; 
DateTime publishingTimeStamp = DateTime.ParseExact(test, "yyyy-MM-dd'T'HH:mm:ss:ffffffzz", System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None);

不幸的是它没有用。我如何转换确切的字符串" 2016-01-01T10:00:55:123456Z + 02"?它是否可能,因为它使用":"在ffffff面前

谢谢

1 个答案:

答案 0 :(得分:6)

您似乎忘记将'Z'转换为格式为string test = "2017-01-01T12:00:33:123456Z+02"; DateTime publishingTimeStamp = DateTime.ParseExact(test, "yyyy-MM-dd'T'HH:mm:ss:ffffff'Z'zz", CultureInfo.InvariantCulture, DateTimeStyles.None); Console.WriteLine(publishingTimeStamp); // 01.01.2017 12:00:33 的字符串文字分隔符。

DateTimeOffset

但由于您的字符串值为UTC Offset,我会将其解析为string test = "2017-01-01T12:00:33:123456Z+02"; DateTimeOffset publishingTimeStamp = DateTimeOffset.ParseExact(test, "yyyy-MM-dd'T'HH:mm:ss:ffffff'Z'zz", CultureInfo.InvariantCulture, DateTimeStyles.None);

DateTimeOffset

现在您的{01.01.2017 12:00:33 +02:00}NSPersistentStoreDidImportUbiquitousContentChangesNotification

enter image description here