ToshortDateString() и CultureInfo.InvariantCulture
Я хочу преобразовать дату Персии в григорианскую дату. Я использую этот код.
public static void GetDate()
{
String persianDate="1384/03/15"
Datetime dt= GetComponentDate(persianDate);
}
DateTime GetComponentDate(string fdate)
{
DateTime edate;
int year = int.Parse(Persia.Number.ConvertToLatin(fdate.Split('/')[0]));
int month = int.Parse(Persia.Number.ConvertToLatin(fdate.Split('/')[1]));
int day = int.Parse(Persia.Number.ConvertToLatin(fdate.Split('/')[2]));
try
{
System.Globalization.PersianCalendar x = new System.Globalization.PersianCalendar();
DateTime dt = x.ToDateTime(year, month, day, 0, 0, 0, 0, 0);
return dt;
}
catch
{
}
return DateTime.MinValue;
}
На сервере этот метод работает хорошо, и вывод "17/6/2017" . но на другом сервере этот метод не работает и вывод ="15/03/1384", и я должен использовать этот код после использования GetComponentDate.
((DateTime)dt).ToString(CultureInfo.InvariantCulture);
чем отличаются два сервера? вы не могли бы мне помочь?
1 ответ
Вы говорите, что вам нужно использовать CultureInfo.InvariantCulture
для того, чтобы заставить его работать на обоих серверах, а затем вы спрашиваете "что отличается на двух серверах".
Я бы сказал, что отличается это культура.
Вы можете установить свою культуру приложения, добавив строку глобализации в ваш web.config:
<configuration>
<system.web>
<globalization uiCulture="[uiculture]" culture="[culture]" />
замещать [uiculture]
а также [culture]
с точными значениями.
Например, для культуры США:
<globalization uiCulture="en-US" culture="en-US"/>
Вот список всех разных культур.