В c# у меня есть формат даты, где месяц указан в символах, а не в цифрах, как я могу с этим справиться? - PullRequest
0 голосов
/ 23 марта 2020

Я пытался решить эту проблему: в следующем коде у локальной переменной 'format4' есть месяц, который является словом, и я не могу напечатать его методом ParseExact. Я знаю, что могу использовать соответствующее целое число, но не могу понять, как.

using System;

namespace exercise_2
{
     class Program
     {

        static void Main()
        {
            string format1 = "16/03/2020";
            string format2 = "16-03-20";
            string format3 = "03/16/2020"; // US format , month before date
            string format4 = "March 16, 2020";
            DateTime dt_1 = DateTime.ParseExact(format1, "dd/MM/yyyy", null);
            Console.WriteLine(dt_1);
            DateTime dt_2 = DateTime.ParseExact(format2, "dd-MM-yy", null);
            Console.WriteLine(dt_2);
            DateTime dt_3 = DateTime.ParseExact(format3, "MM/dd/yyyy", null);
            Console.WriteLine(dt_3);
            //easier to use the Parse method
            //DateTime dt_4 = DateTime.Parse(format4);
            //Console.WriteLine(dt_4);
            DateTime dt_4 = DateTime.ParseExact(format4, "[MM]" + "[03] dd, yyyy", null);
            Console.WriteLine(dt_4);
        }
    }
}

1 Ответ

3 голосов
/ 23 марта 2020

Формат "MMMM dd, yyyy"

Код теста:

Console.WriteLine(DateTime.ParseExact("March 16, 2020", "MMMM dd, yyyy", null));

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

Если указано выше одна строка кода не работает, тогда текущая культура вашего потока не Engli sh. Чтобы исправить это, передайте правильную культуру методу в качестве поставщика формата.

Console.WriteLine(DateTime.ParseExact("March 16, 2020", "MMMM dd, yyyy", System.Globalization.CultureInfo.GetCultureInfo("en-US")));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...