I Speichern von Daten in MySql Datetime-Feld, und ich sparte immer UTC-Datum von C# (mit someDate.ToUniversalTime()).UTC datetime Umwandlung in Ortszeit
Ich bin in der mitteleuropäischen Zeitzone.
Ich habe ein Datum, das am 08.03.2016 als 2016-04-07 16:00:00 gespeichert wurde (Ereignis wurde in der Zukunft zu dieser Zeit festgelegt) und korrekte Ortszeit für dieses Ereignis war 2016-04-07 17:00:00, so wurde es zu dieser Zeit als GMT + 1 gespeichert. Ich habe someDate.ToLocalTime() verwendet, um die korrekte Ortszeit zu erhalten, und es hat gut funktioniert. wegen DayLight Ereignisses
Heute (im April), die am Ende des März aufgetreten wir haben GMT + 2 versetzt und jetzt someDate.ToLocalTime() zeigt mir noch 1 Stunde: 2016.04.07 18.00 Uhr : 00 was nicht stimmt.
Wie löst man das universell? Ich möchte die UTC-Zeit (wie jetzt) speichern und dann eine Systemkonvertierung anwenden, die die aktuelle Zeitzone des Benutzers verwendet und immer die korrekte Ortszeit von meinem gespeicherten UTC-Datum in Bezug auf den aktuellen DayLightSaving-Status zurückgibt. Es sollte auch zurückgeben 2016-04-07 17:00:00 und nicht 2016-04-07 18:00:00
Verwenden 'TIMESTAMP' statt' DATETIME' und dann den 'time_zone' Session-Variable-MySQL wird den Rest erledigen. – eggyal
Ist dies eine Desktop-App oder eine Web-App? Im Allgemeinen sollten nur Desktop-Anwendungen "ToLocalTime" und "ToUniversalTime" verwenden. –