Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ToSortDateString()和CultureInfo.InvariantCulture_C#_Asp.net 4.6 - Fatal编程技术网

C# ToSortDateString()和CultureInfo.InvariantCulture

C# ToSortDateString()和CultureInfo.InvariantCulture,c#,asp.net-4.6,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.ConvertToLati

我想把波斯日期转换成公历日期。我使用这个代码

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);
两台服务器有什么不同?
你能帮我吗?

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

我想说不同的是文化

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

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

是所有不同区域性的列表。

您说需要使用
CultureInfo.InvariantCulture
使其在两台服务器上都能工作,然后您会问“两台服务器有什么不同”

我想说不同的是文化

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

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

是所有不同文化的列表。

什么是“不起作用”的意思?您还可以给出一些示例输入和调用
GetComponentDate
的相关输出吗?什么是
Persia.DateType.Gregorian
?调用
ToString
本身不应该作为语句执行任何操作。。。什么是
dt
?现在这里缺少很多信息。我更新了代码。在一台服务器上,当我只使用GetComponentDate方法时,我可以转换波斯语日期,但在另一台服务器上,当我想将音乐会日期转换为字符串时,我应该使用CultureInfo.InvariantCulture。两台服务器有什么不同?波斯号是什么?你需要给我们提供一个。我们需要能够运行你的代码。现在还不清楚出了什么问题-我怀疑这与你向我们展示的代码无关。如果您硬编码一个
DateTime
值(而不是使用该代码),您会看到相同的结果吗?(请注意,捕获所有这样的异常是处理无效输入的一种非常丑陋的方式,但这是另一回事。)我强烈怀疑您的一台服务器使用的是使用非公历系统的默认区域性,而另一台则不是。如果您想要使用特定日历的特定格式,那么指定区域性是完全合理的……什么是“不起作用”呢?您还可以给出一些示例输入和调用
GetComponentDate
的相关输出吗?什么是
Persia.DateType.Gregorian
?调用
ToString
本身不应该作为语句执行任何操作。。。什么是
dt
?现在这里缺少很多信息。我更新了代码。在一台服务器上,当我只使用GetComponentDate方法时,我可以转换波斯语日期,但在另一台服务器上,当我想将音乐会日期转换为字符串时,我应该使用CultureInfo.InvariantCulture。两台服务器有什么不同?波斯号是什么?你需要给我们提供一个。我们需要能够运行你的代码。现在还不清楚出了什么问题-我怀疑这与你向我们展示的代码无关。如果您硬编码一个
DateTime
值(而不是使用该代码),您会看到相同的结果吗?(请注意,捕获所有这样的异常是处理无效输入的一种非常丑陋的方式,但这是另一回事。)我强烈怀疑您的一台服务器使用的是使用非公历系统的默认区域性,而另一台则不是。如果您想要使用特定日历的特定格式,那么指定区域性是完全合理的……为什么在第一台服务器中我不使用CultureInfo.InvariantCulture和代码运行良好?如何在服务器中设置区域性?我搜索了很多。我在webconfig中使用,但在.ascx页面中无效。我还在Gloabal.ascx中编写了Thread.CurrentThread.CurrentCulture,但这不起作用。我在哪里可以比较两台服务器中的Culture?我测试了这两台服务器。但它没有任何作用effect@FatemeJafari您能复制/粘贴您在web.config中插入的确切行吗?为什么在第一台服务器中我不使用CultureInfo.InvariantCulture和代码运行良好吗?如何在服务器中设置区域性?我搜索了很多。我在webconfig中使用,但在.ascx页面中无效。我还在Gloabal.ascx中编写了Thread.CurrentThread.CurrentCulture,但这不起作用。我在哪里可以比较两台服务器中的Culture?我测试了这两台服务器。但它没有任何作用effect@FatemeJafari你能复制/粘贴你在web.config中插入的那一行吗?