Hallo,
habe eine Anwendung geschrieben, die einen Zeitstempel mit Zehntelsekunden ausgibt. Dazu habe ich die CultureInfo.CurrentCulture (es sollen die länderspezifeschen Einstellungen berücksichtigt werden) geklont und die DateTimeFormatInfo.LongTimePattern - Eigenschaft geändert (in etwa wie im folgendem Codebeispiel).
Unter VS 2003 / Framework 1.1 hat die Ausgabe ohne Beanstandung funktioniert.
Unter VS 2005 / Framework 2.0 und nur bei der österreichischen Kultur lässt sich die Änderung nicht schreibschützen.
Gibt es hierfür eine plausible Erklärung? Ist in meinem Lösungsansatz ein Fehler bzw. gibt es einfachere/schönere Lösungen?
Die einfachste Variante wäre, den schreibschutz nicht zu aktivieren (hätte aber schon gerne, das niemand diese spezielle Kultur ändern kann).
Für eine Hilfestellung wäre ich sehr dankbar.
lg, Wolfgang
habe eine Anwendung geschrieben, die einen Zeitstempel mit Zehntelsekunden ausgibt. Dazu habe ich die CultureInfo.CurrentCulture (es sollen die länderspezifeschen Einstellungen berücksichtigt werden) geklont und die DateTimeFormatInfo.LongTimePattern - Eigenschaft geändert (in etwa wie im folgendem Codebeispiel).
Code:
static void Main(string[] args) { Console.WriteLine("Change and Test CultureInfo"); ChangeAndTestCultureInfo(System.Globalization.CultureInfo.InvariantCulture); ChangeAndTestCultureInfo(System.Globalization.CultureInfo.CurrentUICulture); ChangeAndTestCultureInfo(new System.Globalization.CultureInfo("de-at")); ChangeAndTestCultureInfo(new System.Globalization.CultureInfo("de-de")); ChangeAndTestCultureInfo(new System.Globalization.CultureInfo("en-gb")); ChangeAndTestCultureInfo(new System.Globalization.CultureInfo("en-us")); Console.ReadLine(); } static void ChangeAndTestCultureInfo(System.Globalization.CultureInfo ci) { System.Globalization.CultureInfo ci_ch,ci_ro; ci_ch = ci.Clone() as System.Globalization.CultureInfo; ci_ch.DateTimeFormat.LongTimePattern = ci_ch.DateTimeFormat.LongTimePattern.Replace("ss","ss.f"); ci_ro = System.Globalization.CultureInfo.ReadOnly(ci_ch); Console.WriteLine(); Console.WriteLine("or: {0}; {1}; {2}", ci,ci.DateTimeFormat.LongTimePattern,DateTime.Now.ToString("G",ci)); Console.WriteLine("ch: {0}; {1}; {2}", ci_ch,ci_ch.DateTimeFormat.LongTimePattern,DateTime.Now.ToString("G",ci_ch)); Console.WriteLine("ro: {0}; {1}; {2}", ci_ro,ci_ro.DateTimeFormat.LongTimePattern,DateTime.Now.ToString("G",ci_ro)); }
Code:
or: ; HH:mm:ss; 07/20/2007 08:22:25 ch: ; HH:mm:ss.f; 07/20/2007 08:22:25.5 ro: ; HH:mm:ss.f; 07/20/2007 08:22:25.5 or: de-DE; HH:mm:ss; 20.07.2007 08:22:25 ch: de-DE; HH:mm:ss.f; 20.07.2007 08:22:25.5 ro: de-DE; HH:mm:ss.f; 20.07.2007 08:22:25.5 or: de-AT; HH:mm:ss; 20.07.2007 08:22:25 ch: de-AT; HH:mm:ss.f; 20.07.2007 08:22:25.5 ro: de-AT; HH:mm:ss.f; 20.07.2007 08:22:25.5 or: de-DE; HH:mm:ss; 20.07.2007 08:22:25 ch: de-DE; HH:mm:ss.f; 20.07.2007 08:22:25.5 ro: de-DE; HH:mm:ss.f; 20.07.2007 08:22:25.5 or: en-GB; HH:mm:ss; 20/07/2007 08:22:25 ch: en-GB; HH:mm:ss.f; 20/07/2007 08:22:25.5 ro: en-GB; HH:mm:ss.f; 20/07/2007 08:22:25.5 or: en-US; h:mm:ss tt; 7/20/2007 8:22:25 AM ch: en-US; h:mm:ss.f tt; 7/20/2007 8:22:25.5 AM ro: en-US; h:mm:ss.f tt; 7/20/2007 8:22:25.5 AM
Code:
or: ; HH:mm:ss; 07/20/2007 08:23:07 ch: ; HH:mm:ss.f; 07/20/2007 08:23:07.3 ro: ; HH:mm:ss.f; 07/20/2007 08:23:07.3 or: de-DE; HH:mm:ss; 20.07.2007 08:23:07 ch: de-DE; HH:mm:ss.f; 20.07.2007 08:23:07.3 ro: de-DE; HH:mm:ss.f; 20.07.2007 08:23:07.3 or: de-AT; HH:mm:ss; 20.07.2007 08:23:07 ch: de-AT; HH:mm:ss.f; 20.07.2007 08:23:07.3 ro: de-AT; HH:mm:ss; 20.07.2007 08:23:07 or: de-DE; HH:mm:ss; 20.07.2007 08:23:07 ch: de-DE; HH:mm:ss.f; 20.07.2007 08:23:07.3 ro: de-DE; HH:mm:ss.f; 20.07.2007 08:23:07.3 or: en-GB; HH:mm:ss; 20/07/2007 08:23:07 ch: en-GB; HH:mm:ss.f; 20/07/2007 08:23:07.3 ro: en-GB; HH:mm:ss.f; 20/07/2007 08:23:07.3 or: en-US; h:mm:ss tt; 7/20/2007 8:23:07 AM ch: en-US; h:mm:ss.f tt; 7/20/2007 8:23:07.3 AM ro: en-US; h:mm:ss.f tt; 7/20/2007 8:23:07.3 AM
Die einfachste Variante wäre, den schreibschutz nicht zu aktivieren (hätte aber schon gerne, das niemand diese spezielle Kultur ändern kann).
Für eine Hilfestellung wäre ich sehr dankbar.
lg, Wolfgang
Comment