ToshortDateString()和CultureInfo.InvariantCulture

时间:2017-06-17 08:03:52

标签: c# asp.net-4.6

我想将波斯日期转换为格里高利日期。我用这个代码。

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 个答案:

答案 0 :(得分:0)

你说你需要使用CultureInfo.InvariantCulture才能使它在两台服务器上运行,然后你会问“两台服务器有什么不同”。

我要说的是文化

您可以通过在web.config中添加全球化系列来设置您的应用文化:

<configuration>
    <system.web>
        <globalization uiCulture="[uiculture]" culture="[culture]" />

[uiculture][culture]替换为准确的值。

美国文化:

<globalization uiCulture="en-US" culture="en-US"/>

Here是所有不同文化的列表。