Как преобразовать системный формат даты и времени из строки? - PullRequest
0 голосов
/ 16 апреля 2020

Мне нужно преобразовать строковый формат datetime в поле DateTime, которое должно быть в системном формате Datetime? Я пробовал Convert.ToDateTime, DateTime.Parse, DateTime.ParseExact, но все они конвертируются в дд-мм-гггг ЧЧ: мм: сс формат.

Моя строка в гггг-мм-дд ЧЧ: мм формат.

Я пробовал TryParseExact и также указывал культуру, но я просто не мог понять, как она работает. Ниже приведен код, который я пробую, и мой item.CreationDate находится в "гггг-мм-дд ЧЧ: мм" формат

DateTime dateTime;  
bool isSuccess1 = DateTime.TryParseExact(item.CreationDate, "yyyyy-MM-dd HH:mm", CultureInfo.CurrentCulture, DateTimeStyles.None, out dateTime);
DateTime result = dateTime;

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

Может ли это быть так просто? - yyyyy-MM-dd HH:mm имеет 5 y с в вашем примере, а не 4.

0 голосов
/ 16 апреля 2020

Когда вы конвертируете строку в DateTime, вы должны указать, в каком формате находится ввод (как у вас). Если преобразование завершилось успешно, объект DateTime будет содержать данные для всех частей даты (годы, месяцы, дни и т. Д. c.), И если вы хотите снова просмотреть их как дату, вы должны указать, в каком формате вы хотите их видеть. При использовании DateTime.TryParseExact стоит отметить, что в случае сбоя преобразования будет установлено значение DateTime.MinValue .

Существуют различные способы отображения свидание снова Наиболее распространенным является указание пользовательского формата даты в виде строки. Другой способ - использовать стандартный формат .

var creationDate = "2020-04-13 13:23";

DateTime.TryParseExact(creationDate, "yyyy-MM-dd HH:mm", CultureInfo.CurrentCulture, DateTimeStyles.None, out DateTime dateTime);

var myCulture = new CultureInfo("en-GB");

if(dateTime > DateTime.MinValue)
{
    Console.WriteLine("Your custom format date is: " + dateTime.ToString("yyyy-MM-dd HH:mm"));
    Console.WriteLine("Your standard format date is: " + dateTime.ToString("g", myCulture));
}

Когда вы помещаете это в консольное приложение, результаты выглядят так:

enter image description here

С некоторыми стандартными форматами вам нужно будет определить культуру, так как она будет отличаться для чего-то вроде en-US по сравнению с чем-то вроде zh-CN. В моем случае я использовал «en-GB». Вот список принятых кодов культуры .

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