ユーザーが 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 マシンでは、テキスト ボックスに次のように表示されます。
私の日付 : 2012 年 4 月 11 日 4:07:09 PM 文化固有の日付: 19/05/33 04:07:09 ã
Windows XP マシンでは、テキスト ボックスに次のように表示されます。
私の日付 : 2012 年 4 月 11 日 4:07:09 PM 文化固有の日付: 20/05/33 04:07:09 ã
ご覧のとおり、文化固有の日付は 1 日ずれています。この不一致の原因は何ですか?