Не удается разобрать формат даты и времени - PullRequest
0 голосов
/ 10 июля 2019

Я не могу разобрать дату / время, например,

"7/10/2019 2:52:52 PM".

Независимо от того, какой формат я добавлю, он не будет работать.Вот мой код:

public static DateTime? ToInternal(string source)
{
    if (!DateTime.TryParseExact(
           source,
           PUBLIC_INPUT_FORMAT_STRING,
           System.Globalization.CultureInfo.InvariantCulture,
           System.Globalization.DateTimeStyles.None,
           out DateTime date))
    {
        return null;
    }
    else
    {
        return date;
    }
}

public static string[] PUBLIC_INPUT_FORMAT_STRING =
{
    "yyyy-MM-dd", "dd/M/yyyy", "d/M/yyyy", "d/MM/yyyy",
    "dd/MM/yy", "dd/M/yy", "d/M/yy", "d/MM/yy","yyyy/MM/dd",
    "yyyy-MM-dd HH:mm tt","yyyy'-'MM'-'dd'T'HH':'mm':'ss", 
    "dd/M/yyyy HH:mm:ss tt", "d/MM/yyyy H:mm:ss tt",
    "d/M/yyyy HH:mm:ss", "d/MM/yyyy HH:mm:ss","dd/MM/yyyy HH:mm:ss"
};

1 Ответ

5 голосов
/ 10 июля 2019

Вы должны упомянуть PM как tt и использовать h (не H), поскольку час в формате 12-hour, т.е.

string source = "7/10/2019 2:52:52 PM";

DateTime result = DateTime.ParseExact(
   source, 
  "M/d/yyyy h:m:s tt",  // if "7/10/2019" means "10 July 2019"
   CultureInfo.InvariantCulture);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...