我有一个测试应用程序,它允许用户从组合框中选择一种文化,并在多行文本框中显示文化特定日期。代码如下:
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 机器上,文本框显示:
我的日期:2012 年 4 月 11 日下午 4:07:09 文化特定日期:19/05/33 04:07:09 م
在 Windows XP 机器上,文本框显示:
我的日期:2012 年 4 月 11 日下午 4:07:09 文化特定日期:20/05/33 04:07:09 م
如您所见,文化特定日期差了一天。什么可能导致这种差异?