2017-06-13 4 views
1

Ich erzeuge einen Datetime-Wert von meinem Javascript-Client zu UTC-Format Ich muss in der Lage sein, diese Datetime-Wert in das Datum und die Uhrzeit der bestimmten Kultur zu konvertieren.konvertieren Universal Datetime zu Datetime basierend auf cultureinfo zur Verfügung gestellt

Ich mache das Datumzeit

new Date().toUTCString(); // "Tue, 13 Jun 2017 07:44:58 GMT" 

In meinem C# Konsolenanwendung

Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK"); 
var dt = DateTime.Parse("Tue, 13 Jun 2017 07:44:58 GMT", Thread.CurrentThread.CurrentCulture); 
Console.WriteLine(dt); 

ich immer bekommen die Datetime in der Zeit meiner Zone eher angezeigt bekommen dann den Culture Wert I an es übergeben .

Was ich brauche ist, wenn ich eine universelle Zeit mit einer bestimmten Kultur parse, um mir das Datum und die Zeit dieses bestimmten cultureinfo zu zeigen (dänisch im obigen Code). Wie gehe ich vor?

+0

Hmmm, sein etwas mehr suchen Mai diese Frage wird oft gefragt. –

+3

Eine 'CultureInfo' ist nicht mit einer Zeitzone verknüpft. Einfaches Beispiel: "en-US" - auf welche der vielen US-Zeitzonen würden Sie sich beziehen? –

+3

Ich würde auch dieses Textformat vermeiden - ich empfehle dringend, den Wert als ISO-8601-String zu formatieren oder einfach den Millisekunden-seit-dem-Unix-Epochwert aus Javascript zu übergeben. –

Antwort

0

Versuchen

// See - https://stackoverflow.com/a/7908482/1603275 for a fuller list of options 
TimeZoneInfo sourceTimeZone = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time"); 

// Not sure if DateTime.UtcNow will default to DateTimeKind.Utc 
DateTime utcDate = DateTime.UtcNow; 
utcDate = DateTime.SpecifyKind(utcDate, DateTimeKind.Utc); 

DateTime localDate = TimeZoneInfo.ConvertTimeFromUtc(utcDate, sourceTimeZone); 
Console.WriteLine(localDate); 
0

Es kann voll helfen

 System.Globalization.CultureInfo customCulture = new System.Globalization.CultureInfo("da-DK", true); 
     //to change the date time patern 
     //customCulture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd h:mm tt"; 

     System.Threading.Thread.CurrentThread.CurrentCulture = customCulture; 
     System.Threading.Thread.CurrentThread.CurrentUICulture = customCulture; 

     DateTime newDate = System.Convert.ToDateTime("Tue, 13 Jun 2017 07:44:58 GMT"); 
Verwandte Themen