Problem mit Zeitzonen im Timestamp

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    Problem mit Zeitzonen im Timestamp

    Hey,

    ich habe ein Problem mit dem Umrechnen bzw. erzeugen von Timestamps, genauer liegt das Problem in der Zeitzone.

    Wenn ich mir in PHP einen Timestamp ausgeben lasse z.B.:

    1291122533

    und diesen dann mit date() als Datum ausgebe, bekomme ich korrekt dieses Datum 30.11.2010 14:08:53

    Nun habe ich eine VB Funktion die mir daraus ein Datum errechnen soll hierbei kommt jedoch 30.11.2011 13:08:53 heraus, klar der Timestamp ist sicher GMT und ich könnte nun einfach 1 Stunde addieren, aber das ist keine saubere Lösung, weil wenn das Programm in einer anderen Zeitzone genutzt wird, würde der Timestamp wieder nicht korrekt gebildet.

    Wie kann ich also einen Timestamp erzeugen der die Zeitzone mit einbezieht und mir einen Timestamp der GMT ausgibt?

    Meine Funktionen

    VB.NET-Quellcode

    1. Private Function TimestampToDate(ByVal Timestamp As Double) As Date
    2. Dim Converted As New DateTime(1970, 1, 1, 0, 0, 0, 0)
    3. Converted = Converted.AddSeconds(Timestamp)
    4. Return Converted
    5. End Function
    6. Public Function GetTimestamp() As Integer
    7. Dim Startdate As DateTime = #1/1/1970#
    8. Dim Timestamp As TimeSpan
    9. Timestamp = Date.Now.Subtract(Startdate)
    10. Return CType(Math.Abs(Timestamp.TotalSeconds()), Integer)
    11. End Function
    Ich denke, da musst Du im System die aktuelle Differenz zur Normalzeit auslesen und draufaddieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Dim dd As New Date
    2. dd = Date.UtcNow()
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!