Как разобрать DateTime - PullRequest
       2

Как разобрать DateTime

0 голосов
/ 09 ноября 2018

Как я могу разобрать это DateTime значение?

17-09-2018 3: 18

Я хочу разобрать дату и время. Это то, что я пробовал до сих пор:

x = DateTime.ParseExact(dateString, "d/M/yyyy hh:MM",CultureInfo.InvariantCulture).ToString();
x = DateTime.ParseExact(dateString, "dd/MM/yyyy hh:MM",CultureInfo.InvariantCulture).ToString();
x = DateTime.ParseExact(dateString, "dd/MM/yyyy hh:MM",CultureInfo.InvariantCulture).ToString();

Как я могу сделать эту работу?

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Вы почти у цели. Вам просто нужно запомнить еще две вещи:

  1. мм для минут, а MM для месяцев.
  2. Лучше использовать DateTime.TryParseExact и не позволять программе генерировать исключение, прерывающее поток, если это не предусмотрено.

    // input string
    string dateString = "5/01/2009 09:00";
    
    // variable to hold output value
    DateTime dateValue;
    
    // specify all the valid formats here applicable in your case
    string[] formats = { "dd/MM/yyyy hh:mm", "dd/M/yyyy hh:mm", "d/M/yyyy hh:mm", "d/MM/yyyy hh:mm", "dd/MM/yy hh:mm", "dd/M/yy hh:mm", "d/M/yy hh:mm", "d/MM/yy hh:mm"};
    if (DateTime.TryParseExact(dateString, formats, CultureInfo.InvariantCulture, 
                             DateTimeStyles.None, out dateValue))
    Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                       dateValue.Kind);
    
0 голосов
/ 09 ноября 2018
  • MM - месяцы, mm - минуты. Оболочка имеет значение.
  • Двойной m или двойной M означает, что значение всегда имеет 2 цифры. Один m или один M означает, что значение может иметь 1 цифру, если значение ниже 10.
  • H означает часы по военному времени (24-часовой формат), h означает 12 часов с возможной утра / вечера. То же правило применяется к двузначным цифрам.
  • Символ, используемый между значениями, должен соответствовать входной строке, не указывайте -, если вы используете / или наоборот. Альтернативно используйте параметр культуры, который имеет тот же спецификатор формата, что и во входной строке.
 DateTime x = DateTime.ParseExact("17-09-2018 3:18", "d-MM-yyyy h:m", CultureInfo.InvariantCulture);

См. Также DateTime.ParseExact и Пользовательские строки формата даты и времени

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