Falsche Zeitzonen - UTC eit umwandlung



  • Hey,

    Habe keine Ahnung ob folgendes ein generells c# problem sein könnte oder einfach irgndwo etwas falsch codiert ist, doch da der code eigentlich gut aussieht und nach jeglichen test auf meinem system auch alles super läuft und bei wem anderen nicht komme ich nicht weiter.

    Folgende Ausgangslage:
    GMT + 2 Sommerzeit Athen 13:00, somit wäre UTC-Zeit 10:00.

    Beim anzeigen der versands Daten einer Nachricht:
    DBWert(UTC-Zeit) 10:00
    Anzeige im Dialog 12:00 anstatt wie erwartet 13:00.

    Beim erstellen einer Nachricht:
    DBWert(UTC-Zeit) 11:00 anstatt wie erwartet 10:00
    Anzeige im Dialog 13:00 was zwar der Zeit welche die Zeitzone angibt entsprechen würde, aber da UTC ja 10:00 sein sollte wiederum falsch ist.

    hat vllt. jemand eine Idee wie es zu sowas kommen kann?

    Wenn eine Nachricht erstellt wird, werden dieser als erstellungs sowie versands Datum die Benutzerspezifischen Zeiten aus dem Programm in UTC umgewandelt und in der DB abgespeichert.

    Bin um jegliche hilfe dankbar 🙂



  • Sommer-/Winterzeit?



  • ne, man kann in dem Programm nicht sagen das nur Sommer oder Winterzeit genutzt werden soll. Diese wird automatisch angepasst. Es ist also sicher immer die richtige Zeit.



  • Servus,

    sowas passiert meistens, wenn man intern im Source mal UTC mit lokaler Zeit verwechselt.

    Das kann beim:
    - Initialisieren des DateTime Objekts
    * Mit oder ohne DateTimeKind
    * Falsche CultureInfo
    - ToString()
    - Verwechseln von UTC / Local Ticks
    - Parsen von Strings und Konvertierung in ein DateTime Objekt
    - Bei der Übergabe von/zu der Datenbank
    passieren.

    Ohne die spezifische Sourcecode Stelle wirst du keine konkrete Antwort erhalten können. Es kann halt überall der Fehler versteckt sein. Du solltest jedes einzelne DateTime Objekt das vorkommt durch debuggen und dir explizit aufschreiben was passiert ist. Die goldene Regel hierbei ist, dass man intern immer alles in UTC abhandeln und (Natürlich nur solange es möglich ist!) die Initialisierung der Objekte sauber halten sollte.

    gruß
    Hellsgore



  • Hey Hellsgore,

    Ja, gut komplett bei allen datums stellen die damit zusammen hängen durchdebuggt habe ich noch nicht. Werde ich Montags gleich mal machen.

    Allerdings probiere ich nun schon seit Montag diesen bug zu reproduzieren, und ich denke eigentlich ich habe alles abgedeckt.
    Trozdem läuft es bei mir immer richtig.
    Daher bin ich nicht überzeugt das ich durch debuggen die Fehlerstelle finde, immerhin ist es nicht so leicht beim debuggen eine fehlerhafte stelle zu finden die bei mir bisher keine fehler geworfen hat 😉


Anmelden zum Antworten