DateTime и CultureInfo

у меня есть это в моем коде:

var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);

и когда мой нынешний культур голландский (nl-NL) вместо 1 мая я получаю 5 января.

Я думаю, что ошибка во втором параметре dd.MM.yyyy HH:mm:ss.

есть ли способ исправить это с помощью CultureInfo класса?

3 ответов


вы можете попробовать следующее:

System.Globalization.CultureInfo cultureinfo =
        new System.Globalization.CultureInfo("nl-NL");
DateTime dt = DateTime.Parse(date, cultureinfo);

использовать CultureInfo класс для изменения информации о культуре.

var dutchCultureInfo = CultureInfo.CreateSpecificCulture("nl-NL");
var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", dutchCultureInfo);

InvariantCulture похож на en-US, поэтому я бы использовал правильный CultureInfo вместо:

var dutchCulture = CultureInfo.CreateSpecificCulture("nl-NL");
var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", dutchCulture);

демо

а как насчет того, когда культура en-us? Должен ли я кодировать для каждый язык, который существует?

если вы хотите знать, как отобразить дату в другой культуре, такой как" en-us", вы можете использовать date1.ToString(CultureInfo.CreateSpecificCulture("en-US")).