Преобразовать формат строкового значения ГГГГММДДЧЧММСС в C # DateTime

У меня просто была эта проблема, и Google привел меня сюда, так что просто чтобы добавить к общим решениям здесь, это то, что сработало для меня:

# 'value' contains the problematic data
unic = u''
unic += value
value = unic

У меня была эта идея после прочтения Презентация Неда .

Я не претендую на то, чтобы полностью понять, почему это работает. Поэтому, если кто-нибудь может отредактировать этот ответ или поставить комментарий, чтобы объяснить, я буду признателен.

29
задан SARAVAN 11 June 2010 в 20:14
поделиться

2 ответа

Определите свою собственную строку формата разбора для использования.

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);

Спасибо

72
ответ дан Ian R. O'Brien 11 June 2010 в 20:14
поделиться

Вы должны использовать пользовательскую строку для разбора . Я также предлагаю включить инвариантную культуру, чтобы определить, что этот формат не имеет отношения к какой-либо культуре. Кроме того, это предотвратит предупреждение в некоторых инструментах анализа кода.

var date = DateTime.ParseExact(value, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
17
ответ дан Pierre-Alain Vigeant 11 June 2010 в 20:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: