2015-01-30 4 views
5

Ich habe ein Windows Server 2008 R2-System, das mit den Standardgebietsschemaeinstellungen konfiguriert ist (keine Überschreibungen für das Format oder irgendetwas) und es ist auf en-US festgelegt.DateTime-Formatierung stimmt nicht mit der Kultur überein

Wenn ich verhören folgendes: System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat

Es listet die DateSeparator als - (Bindestrich) anstelle eines / (Schrägstrich) . So würde DateTime.Now.ToString() ungefähr so ​​aussehen:

01-30-2015.

Auch die CurrentThread.CurrentCulture.ToString() = „en-US“

Ich bin ratlos vollständig, wie dies überhaupt möglich ist, aber noch wichtiger ist, würde ich, wenn wissen. NET hat eine Art Gebietsüberschreibung, die irgendwie konfigurierbar ist?

Das System Region & Spracheinstellungen sind normal und wurden nicht geändert. Jede Hilfe wäre sehr dankbar, danke.

Hier ist der Code für die Diagnoseinformationen. Es wird in asp.net auf einer aspx-Seite ausgeführt.

Current Date Time: <%= DateTime.Now.ToString() %> 
Current Short Date: <%= DateTime.Now.ToShortDateString() %> 
Current Culture: <%= System.Threading.Thread.CurrentThread.CurrentCulture.ToString() %> 
Current UI Culture: <%= System.Threading.Thread.CurrentUICulture.ToString() %> 

DateTimeFormatInfo invariant = CultureInfo.InvariantCulture.DateTimeForamat; 
DateTimeFormatInfo uiThread = System.Threading.Thread.CurrentThread.CurrentUICulture.DateTimeFormat; 
DateTimeFormatInfo thread = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat; 

Type type = System.Threading.Thread.CurrentThread.CurrentUICulture.DateTimeFormat.GetType(); 
foreach(var prop in type.GetProperties()) { 
    <%= prop.Name %> 
    <%= prop.GetValue(invariant, null) %> <br/> 
    <%= prop.GetValue(uiThread, null) %> <br/> 
    <%= prop.GetValue(thread, null) %> <br/> 
} 

Region & Spracheinstellungen Region and Language Settings

Hier sind einige weitere Informationen Diagnostic Information about DateTimeFormat

+0

Try CurrentUICulture anstelle von CurrentCulture versuchen –

+0

CurrentUICulture meldet dasselbe. – Colemangrill

+6

Also vermutlich können Sie das nur in einer kleinen Konsolen-App sehen? Eine Demo wäre wirklich praktisch, nur um sicherzustellen, dass wir alle an die gleichen Dinge denken. –

Antwort

1

Jeder Benutzer unterschiedliche Region Profil hat. Ihr aktuelles Konto und Ihre Anwendung verwenden möglicherweise nicht dasselbe Konto, weshalb Sie den anderen Wert sehen.

Gehen Sie zu Region Einstellungen Windows -> Administrative -> Klicken Sie auf Einstellungen kopieren und aktivieren Sie alle Kontrollkästchen (Begrüßungsbildschirm und Systemkonten + Neue Benutzerkonten) und klicken Sie dann auf OK. Sehen Sie, ob es Ihr Problem behebt. Wenn Ihre App eine Webanwendung ist, müssen Sie einen anderen AppPool erstellen, damit sie betroffen ist.

Verwandte Themen