#c# #parsing #datetime
#c# #синтаксический анализ #дата и время
Вопрос:
Я пытаюсь преобразовать строку типа «чч: мм: сс» или «дд.мм.гггг чч: мм: сс», но у меня ничего не получилось: (Такой код :
public DateTime[] tarihSaat = new DateTime[documentRowCount]
string c = "27.12.2010 00:00:00"
tarihSaat[0] = DateTime.ParseExact(c, "dd.MM.yyyy hh:mm:ss", CultureInfo.InvariantCulture);
но это не сработало .. Есть предложения?
Комментарии:
1. Ваш пример кода отлично сработал для меня — вы уверены, что
documentRowCount
равно > 0?2. Как именно это не сработало? Вы получили неверное значение? Произошел сбой?
3. Не могли бы вы рассказать нам, что делает программа ? Выдает ли это исключение? Выдает ли это неверную дату?
Ответ №1:
Вы все делаете правильно, но, возможно, вам нужно не hh
а HH
вот так:
tarihSaat[0] = DateTime.ParseExact(c, "dd.MM.yyyy HH:mm:ss", CultureInfo.InvariantCulture);
hh
предназначена для 12-часового формата и выглядит так, как будто вы выполняете синтаксический анализ из 24-часового формата, поэтому вам нужно HH
.
Ответ №2:
На этом сайте представлено несколько примеров форматирования строк и форматов времени / даты.
Ответ №3:
using System;
using System.Globalization;
DateTime.Parse("27.12.2010 00:00:00",
new CultureInfo("en-GB")).ToLongDateString();
// Выдает «Понедельник, 27 декабря 2010».