Ответ 1
Вы можете попробовать следующее:
System.Globalization.CultureInfo cultureinfo =
new System.Globalization.CultureInfo("nl-NL");
DateTime dt = DateTime.Parse(date, 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
?
Вы можете попробовать следующее:
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"))
.