1

我想将波斯日期转换为公历日期。我使用此代码。

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);

两台服务器有什么不同?你能帮助我吗?

4

1 回答 1

0

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

我想说不同的是文化

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

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

用准确的值替换[uiculture]和。[culture]

例如对于美国文化:

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

是所有不同文化的列表。

于 2017-06-17T08:42:48.070 回答