我想将波斯日期转换为格里高利日期。我用这个代码。
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);
两台服务器有什么不同? 你能救我吗?
答案 0 :(得分:0)
你说你需要使用CultureInfo.InvariantCulture
才能使它在两台服务器上运行,然后你会问“两台服务器有什么不同”。
我要说的是文化。
您可以通过在web.config中添加全球化系列来设置您的应用文化:
<configuration>
<system.web>
<globalization uiCulture="[uiculture]" culture="[culture]" />
将[uiculture]
和[culture]
替换为准确的值。
美国文化:
<globalization uiCulture="en-US" culture="en-US"/>
Here是所有不同文化的列表。