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?
Ist die Uhr auf beiden richtigen Systeme? – Oded
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
Das Systemdatum ist korrekt. Ich gebe "Mein Datum" aus, was auf beiden Maschinen gleich ist. – markyd13