Sommerzeit auf Normalzeit umrechnen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von chicco84.

    Sommerzeit auf Normalzeit umrechnen

    Hallo zusammen,

    eine generelle Frage:

    Wie kann ich bei einer Zeitreihe die Sommerzeit in Normalzeit umrechnen?

    Inzwischen könnte ich es für jedes Jahr extra machen (mit Select Case...), dann funktionierts, allerdings soll es die nächsten Jahre auch noch von selbst laufen...
    Hab bei der Klasse TimeZoneInfo die TransitionTime und Adjustment Rule-Objekte gefunden und folgende "Regeln" aufgestellt:

    VB.NET-Quellcode

    1. SommerzeitStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00 AM#, 3, 5, DayOfWeek.Sunday)
    2. SommerzeitEnde = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#3:00:00 AM#, 10, 5, DayOfWeek.Sunday)
    3. Sommerzeit = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(Beginn, Ende, delta, SommerzeitStart, SommerzeitEnde)


    Jetzt weiß ich aber nicht wie ich abfragen kann ob das jeweilige Datum mit Zeit in die Sommerzeit fällt oder nicht?!

    lg
    Mit IsDaylightSavingTime (Date-Klasse) kann man abfragen, ob die eingestellte Uhrzeit im PC Sommerzeit ist
    Beispiel:

    VB.NET-Quellcode

    1. Dim dtSommer As Date = Nothing
    2. If Now.IsDaylightSavingTime Then
    3. dtSommer = Now
    4. MessageBox.Show("Sommerzeit! - " & dtSommer.ToString("dd.MM.yyyy - HH:mm:ss"))
    5. Else
    6. dtSommer = Now.Subtract(New TimeSpan(1, 0, 0)) ' eine Stunde abziehen
    7. MessageBox.Show("Winterzeit! - Sommerzeit wäre: " & dtSommer.ToString("dd.MM.yyyy - HH:mm:ss"))
    8. End If
    nochmal ein neues Problem:

    habe ich die Uhrzeit 00:00:00 gibt er diese nicht aus... es muss für meine Arbeit aber das ganze Datum mit Uhrzeit da stehen:

    14.12.2010 00:00:00

    hab das ganze jetzt in folgender Form:

    VB.NET-Quellcode

    1. datum = spalte(0)
    2. zeit = spalte(1)
    3. DatumZeit = DateTime.Parse(datum & " " & zeit)
    4. If DatumZeit.IsDaylightSavingTime Then
    5. DatumZeit = DatumZeit.AddHours(-1)
    6. End If


    das ergebnis ist leider:

    14.12.2010

    warum schmeißt er um 0Uhr die Uhrzeit weg????
    ja. meine variable datum (string) sieht so aus: "14.12.2010"
    die variable zeit (string) :"00:00:00"

    mit dem befehl Parse habe ich die beiden dann zusammengefügt - also beide sollen ausgegeben werden, mit einem Leerzeichen (" ") dazwischen.

    es funktioniert ja, und zeigt auch die zeit an wenn sie z.b. "00:03:00" ist, also sobald sie nicht mehr genau Null ist, gibt er auch die Zeit aus.

    EDIT:
    hab es mit DateTime.ToString geschafft :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „chicco84“ ()