Формат даты/времени от строки?

Если вы хотите динамически добавлять html / компоненты, вы можете использовать . Есть тонны учебников по этому, например, https://blog.angular-university.io/angular-ng-content/

5
задан Jeff Atwood 24 October 2008 в 10:01
поделиться

5 ответов

Используйте DateTime. ParseExact:

string str = "24/10/2008";
DateTime dt = DateTime.ParseExact(str, "dd/MM/yyyy", 
                                  Thread.CurrentThread.CurrentCulture);

(Необходимо рассмотреть, какая культура Вы на самом деле хотите проанализировать его в по общему признанию.)

Править: Другие ответы указали "пустой указатель" как третий параметр - это эквивалентно использованию Thread.CurrentThread.CurrentCulture.

Для других форматов см. "Пользовательские Строки формата Даты и времени" в MSDN.

12
ответ дан 18 December 2019 в 08:32
поделиться

Если Вы не знаете формат, используйте:

DateTime d = DateTime.Parse(dateString);

Это пытается проанализировать строковое представление даты и времени с помощью правил форматирования текущей культуры (например, английские (американские) "en-США", немецкий "de-DE"...). Это пытается проигнорировать нераспознанные данные и заполняет отсутствующие значения в течение года, месяца и дня с текущей датой (при парсинге только строки, содержащей время, например).

Если Вы знаете, что используемая культура строки отличается от текущей, можно указать культуру для использования:

CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");
DateTime d = DateTime.Parse(dateString, culture);

Необходимо всегда окружать преобразование блоком try-catch, так как строка должна соответствовать распознанному шаблону. С другой стороны, можно также протестировать законность строки с методом DateTime.TryParse(dateString, out dateTime) который возвращает true на успехе и результате в dateTime; или ложь иначе.

Если Вы знаете точный формат, можно использовать

DateTime d = DateTime.ParseExact(dateString, "dd/MM/yyyy", null);

(См. Пользовательские Строки формата Даты и времени от сайта MSDN для других строк формата).

4
ответ дан 18 December 2019 в 08:32
поделиться

Я также предложил бы смотреть на DateTime.TryParse если Вы не уверены, в каком формате строка даты будет. Таким образом, можно постараться не вручать очень дорогие исключения в стандартной программе Синтаксического анализа.

Я был бы также рекомендация второго Jon Skeet использовать DateTime.ParseExact если Вы действительно знаете точно, каким форматом дата будет в, каждый раз.

3
ответ дан 18 December 2019 в 08:32
поделиться
string str = "24/10/2008";
DateTime dt = Convert.ToDateTime(str);
0
ответ дан 18 December 2019 в 08:32
поделиться

Попробуйте что-то как

DateTime date = System.DateTime.ParseExact(str, "dd/MM/yyyy", null);

В течение времени это могло бы работать

DateTime date = System.DateTime.ParseExact(str, "HH:mm:ss", null);
0
ответ дан 18 December 2019 в 08:32
поделиться
Другие вопросы по тегам:

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