строка для определения времени даты в формате «чч: мм: сс» или «дд.мм.гггг чч: мм: сс»

#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:

На этом сайте представлено несколько примеров форматирования строк и форматов времени / даты.

http://blog.stevex.net/string-formatting-in-csharp/

Ответ №3:

 using System;
using System.Globalization;

DateTime.Parse("27.12.2010 00:00:00", 
               new CultureInfo("en-GB")).ToLongDateString();
  

// Выдает «Понедельник, 27 декабря 2010».