Конвертация DateTime независимо от культуры - PullRequest
0 голосов
/ 11 февраля 2012

У меня есть текстовая строка, которая должна стать DateTime объектом:

Feb 10, 2012 at 16:33.29

Этот текст не изменяется, но программное обеспечение будет работать на разных устройствах с разными форматами DateTime.

Как мне настроить собственный DateTime парсер, чтобы независимо от культуры я получал полностью заполненный DateTime объект?

Ответы [ 4 ]

2 голосов
/ 11 февраля 2012

разбор с CultureInfo.InvariantCulture?

1 голос
/ 11 февраля 2012

Используйте ParseExact со строкой пользовательского формата и инвариантной культурой:

DateTime date = DateTime.ParseExact(theString, "MMM d', 'yyyy' at 'HH':'mm'.'ss", CultureInfo.InvariantCulture);
1 голос
/ 11 февраля 2012

Вот пользовательский формат, соответствующий вашему примеру:

var dt = DateTime.ParseExact(
    "Feb 10, 2012 at 16:33.29", 
    "MMM d, yyyy 'at' HH:mm.ss", 
    CultureInfo.InvariantCulture);
0 голосов
/ 11 февраля 2012

Одна вещь не имеет ничего общего с другой.

DateTime.Parse(value, formatstr) возвращает DateTime.

DateTime не имеет формата, если вы не хотите говорить о том, как он представлен в памяти. Когда вы конвертируете это в строку, вы обычно делаете это в неявном или явном формате, если у вас больше нет даты / времени ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...