2012-04-11 17 views
3

Ich habe eine Testanwendung, die es dem Benutzer ermöglicht, eine Kultur aus einer ComboBox auszuwählen und das kulturspezifische Datum in einer mehrzeiligen TextBox anzuzeigen. Der Code ist unten:Culture specific DateTime String ist zwischen den Plattformen inkonsistent

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); 
    } 
} 

Ich stelle fest, dass, wenn „ar-SA“, Arabisch (Saudi-Arabien), ausgewählt ist, dann habe ich unterschiedliche Ergebnisse sehen, wenn ich die Anwendung auf verschiedenen Rechnern laufen.

Auf einer Windows-7-Maschine, das Textfeld angezeigt:

 
My Date : 4/11/2012 4:07:09 PM 
Culture Specific Date: 19/05/33 04:07:09 م 

Auf einem Windows XP-Rechner, das Textfeld angezeigt:

 
My Date : 4/11/2012 4:07:09 PM 
Culture Specific Date: 20/05/33 04:07:09 م 

Wie Sie die Kultur bestimmte Datum sehen können, um einen Tag. Was könnte diese Diskrepanz verursachen?

+1

Ist die Uhr auf beiden richtigen Systeme? – Oded

+0

Vielleicht ist das Systemdatum in der Maschine um einen Tag aus? Was passiert, wenn Sie sich für eine andere Kultur wie "US" entscheiden? – gdoron

+2

Das Systemdatum ist korrekt. Ich gebe "Mein Datum" aus, was auf beiden Maschinen gleich ist. – markyd13

Antwort

6

I Verdächtiger ist dies aufgrund der Windows-XP-Rechner nicht adjustments to the Umm al-Qura calendar, während vermutlich der Windows 7-Box gehalten wird auf dem neuesten Stand up-to-date empfangen, obwohl ich nicht diese Anpassungen der beeinflussen erwarten aktueller Monat. Alternativ könnte es dazu fällig:

Erst vor kurzem mehr Informationen zur Verfügung steht, die jetzt haben macht es möglich, den Kalender zu rekonstruieren auf der arabischen Halbinsel in der jüngsten Vergangenheit angenommen und seine Zukunft natürlich seit vielen Jahren zur Vorhersage in voraus.

... vielleicht ist die Windows XP-Implementierung veraltet.

(Diese Seite stimmt zu, dass es zur Zeit der 19., übrigens.)