C# 特定于区域性的DateTime字符串在平台之间不一致

C# 特定于区域性的DateTime字符串在平台之间不一致,c#,.net,datetime,cultureinfo,currentculture,C#,.net,Datetime,Cultureinfo,Currentculture,我有一个测试应用程序,允许用户从组合框中选择区域性,并在多行文本框中显示特定于区域性的日期。代码如下: public partial class Form1 : Form { public Form1() { InitializeComponent(); comboBox1.Items.AddRange( CultureInfo.GetCultures(CultureTypes.SpecificCultures));

我有一个测试应用程序,允许用户从组合框中选择区域性,并在多行文本框中显示特定于区域性的日期。代码如下:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        comboBox1.Items.AddRange(
            CultureInfo.GetCultures(CultureTypes.SpecificCultures));
    }

    private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
    {
        CultureInfo selectedCulture = comboBox1.SelectedItem as CultureInfo;
        DateTime currentDate = DateTime.Now;

        textBox1.Text =
            "My Date : " + currentDate.ToString() + Environment.NewLine +
            "Culture Specific Date: " + currentDate.ToString(selectedCulture);
    }
}
我注意到,如果选择“ar SA”,阿拉伯语(沙特阿拉伯),那么当我在不同的机器上运行应用程序时,我会看到不同的结果

在Windows 7计算机上,文本框显示:

My Date : 4/11/2012 4:07:09 PM Culture Specific Date: 19/05/33 04:07:09 م My Date : 4/11/2012 4:07:09 PM Culture Specific Date: 20/05/33 04:07:09 م 我的日期:2012年11月4日下午4:07:09 特定培养日期:19/05/33 04:07:09م 在Windows XP计算机上,文本框显示:

My Date : 4/11/2012 4:07:09 PM Culture Specific Date: 19/05/33 04:07:09 م My Date : 4/11/2012 4:07:09 PM Culture Specific Date: 20/05/33 04:07:09 م 我的日期:2012年11月4日下午4:07:09 特定培养日期:20/05/33 04:07:09م 如您所见,特定于区域性的日期缩短了一天。造成这种差异的原因是什么?

我怀疑这是因为Windows XP机器没有接收到最新信息,而据推测Windows 7框是最新的,尽管我预计这些调整不会影响本月。或者,这可能是由于:

直到最近才有了更多的资料,现在可以重建最近在阿拉伯半岛通过的历法,并提前多年预测其未来走向

。。。因此,也许Windows XP的实现已经过时了


(顺便说一句,该页面同意现在是19号。)

两个系统上的时钟都正确吗?可能机器中的sysdate日期被关闭了一天?当您选择其他区域性(如
US
)时会发生什么情况?系统日期是正确的。我输出“我的日期”,这在两台机器上都是一样的。行吗?@Anurag Ranjhan:谢谢,但我不相信这种变通方法适用于我的情况。