特定于文化的DateTime字符串在平台之间不一致

我有一个测试应用程序,允许用户从ComboBox中选择文化,并在多行TextBox中显示特定于文化的日期。 代码如下:

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计算机上,文本框显示:

我的约会时间:4/11/2012 4:07:09 PM
文化具体日期:19/05/33 04:07:09م

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

我的约会时间:4/11/2012 4:07:09 PM
文化特定日期:20/05/33 04:07:09م

如您所见,文化特定日期是一天。 可能导致这种差异的原因是什么?

怀疑这是因为Windows XP机器没有接收到对Umm al-Qura日历的最新调整 ,而大概是Windows 7机箱保持最新,尽管我不希望这些调整影响当前月。 或者,可能是由于这个原因:

直到最近才有更多的信息可用,现在可以重建最近在阿拉伯半岛采用的日历,并提前多年预测其未来的进程。

…所以也许Windows XP的实现已经过时了。

(那个页面同意它现在是第19个,顺便说一句。)