3

ユーザーが 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 日ずれています。この不一致の原因は何ですか?

4

1 に答える 1

6

これは、Windows XP マシンが Umm al-Qura カレンダーの最新の調整を受信して​​いないことが原因であると思われますが、おそらく Windows 7 ボックスは最新の状態に保たれています。月。または、これが原因である可能性があります。

ごく最近になって、より多くの情報が利用できるようになり、アラビア半島で最近採用された暦を再構築し、何年も前から将来の進路を予測することが可能になりました.

... Windows XP の実装が古くなっている可能性があります。

(ちなみに、そのページは現在 19 番目であることに同意します。)

于 2012-04-11T20:19:36.633 に答える