У меня просто была эта проблема, и Google привел меня сюда, так что просто чтобы добавить к общим решениям здесь, это то, что сработало для меня:
# 'value' contains the problematic data
unic = u''
unic += value
value = unic
У меня была эта идея после прочтения Презентация Неда .
Я не претендую на то, чтобы полностью понять, почему это работает. Поэтому, если кто-нибудь может отредактировать этот ответ или поставить комментарий, чтобы объяснить, я буду признателен.
Определите свою собственную строку формата разбора для использования.
string formatString = "yyyyMMddHHmmss";
string sample = "20100611221912";
DateTime dt = DateTime.ParseExact(sample,formatString,null);
Если у вас есть дата и время в миллисекундах, используйте следующий формат String
string format = "yyyyMMddHHmmssfff"
string dateTime = "20140123205803252";
DateTime.ParseExact(dateTime ,format,CultureInfo.InvariantCulture);
Спасибо
Вы должны использовать пользовательскую строку для разбора . Я также предлагаю включить инвариантную культуру, чтобы определить, что этот формат не имеет отношения к какой-либо культуре. Кроме того, это предотвратит предупреждение в некоторых инструментах анализа кода.
var date = DateTime.ParseExact(value, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);