Проблема с типом даты - PullRequest
       0

Проблема с типом даты

1 голос
/ 17 сентября 2010

я получаю эту дату: 9/20/2010 3:32:32 PM

мне нужно преобразовать в datetime.

я пытаюсь:

DateTime DateFrom = DateTime.ParseExact("9/20/2010 3:32:32 PM", "dd/M/yyyy", CultureInfo.InvariantCulture);

но я получаю ошибку: String was not recognized as a valid DateTime.

в моем компьютере регион: Hebrew (Israel) dd/MM/yyyy for short date and hh:mm for short time

как это исправить?

заранее спасибо

Ответы [ 5 ]

11 голосов
/ 17 сентября 2010

Если вы получаете «20.09.2010 15:32:32 PM» в виде строки, то попытка разобрать ее, как если бы она была в формате «dd / MM / yyyy», явно неверна - вот попытайтесьиспользовать month из 20. Вы также анализируете только часть строки - вам нужно либо обрезать строку, либо предоставить полный формат.

Попробуйте это:

DateTime dateFrom = DateTime.ParseExact("9/20/2010 3:32:32 PM",
                                        "M/dd/yyyy h:mm:ss tt", 
                                        CultureInfo.InvariantCulture);

Обратите внимание, что использование такого вида строгого анализа будет работать только в том случае, если вы можете гарантировать, что всегда будет форматом.Откуда вы получаете эти данные?

4 голосов
/ 17 сентября 2010

Как это может сработать, чувак. вопрос дд / м / гггг неправильный. Понравится дд / мм / гггг.

По умолчанию формат MM/DD/yyyy.

простой способ сделать .......

DateTime DateFrom = DateTime.Parse("9/20/2010 3:32:32 PM");

если вы хотите указать конкретный формат, используйте этот

DateTime DateFrom = DateTime.ParseExact("20/09/2010 3:32:32 PM", "dd/MM/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);

Надеюсь, это сработает.

0 голосов
/ 17 сентября 2010

Я бы не использовал ParseExact (), когда я знаю, что строка времени отформатирована инвариантной культурой.

DateTime dateFrom = DateTime.Parse(dateString, CultureInfo.InvariantCulture);

более компактен и понятен.

0 голосов
/ 17 сентября 2010
DateTime dateFrom = DateTime.ParseExact("9/20/2010 3:32:32 PM", "M/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);

У меня работает

0 голосов
/ 17 сентября 2010

Похоже, ваша исходная строка даты в американском формате (т. Е. М / дд / гггг).Попробуйте заменить третий параметр на new CultureInfo("en-US")

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