In eine Datei mit Kalibrierwerten wird ein Zeitstempel geschrieben. Beim Starten der SW wird der Zeitstempel ausgelesen. Ist er älter wie 48 Stunden soll neu kalibriert werden. Auf dem Testsystem, einem deutschen Windows 7 tat es der folgende Code:

DateTime.ParseExact(strDatCalibrate,"dd.MM.yyyy_hh:mm", CultureInfo.CurrentCulture);


Bei anderen Sprachen/Regionen bzw. anders eingestelltem Datumsformat krachte es, da kein gültiger Datumsstring vorliegt. Die Lösung bringen hier die in der System.Globalization.CultureInfo definierten Patterns:



DateTime.TryParseExact(strDatCalibrate,
    string.Format("{0:s}_{1:s}",
        CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern,
        CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern),     
    CultureInfo.CurrentCulture,
    DateTimeStyles.None,
    out dt));