Formatierung DateTimePicker

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von Gerd_F.

    Formatierung DateTimePicker

    Hallo Kollegen,

    ich habe nun ein DateTimePicker auf meiner form erstellt und die Anzeige auf Time gestellt und Formatiert.
    Und lasse mir unten testweise mal den DateTimePicker Inhalt ausgeben.
    Ich bekomme aber immer folgende Uhrzeit ausgeben z.b.: 23:57:33.8292613
    Wieso wird die Zeit nicht so ausgeben 23:57:33 ??? trotz Formatierung


    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    2. DateTimePicker1.Format = DateTimePickerFormat.Time
    3. DateTimePicker1.CustomFormat = "hh:mm:ss"
    4. ' 1 Minute hinzufügen
    5. DateTimePicker1.Value = DateTimePicker1.Value.AddMinutes(1)
    6. DateTimePicker1.ShowUpDown = True
    7. Debug.Print(DateTimePicker1.Value.TimeOfDay.ToString)
    8. End Sub


    Irgendwie formatiert der hier den Quellcode komisch ?(
    Würde mich über Hilfe freuen...
    __________________________________________
    mfG.

    André

    __________________________________________
    Angewandte Entwicklungsumgebung: Visual Studio 2019,
    C#, SQL, JAVA, VB(A).NET, DATENBANKEN aller Art,
    Access alle Versionen
    Hey,

    wenn Du schon ein Custom-Format angibst, dann stell auch das Format auf Custom.

    Ausserdem bietet der Typ DateTime, bzw. Date auch die Funktion ToLongTimeString(), bzw. ToShortTimeString. Selbiges gilt für Datumsangaben.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

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

    Quark schrieb:

    trotz Formatierung
    Du musst ihm auch noch sagen, dass er es verwenden soll (@SpaceyX:). Gugst Du hier.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. DateTimePicker1.Format = DateTimePickerFormat.Time
    3. DateTimePicker1.Format = DateTimePickerFormat.Custom ' das hier
    4. DateTimePicker1.CustomFormat = "h:mm"
    5. ' 1 Minute hinzufügen
    6. DateTimePicker1.Value = DateTimePicker1.Value.AddMinutes(1)
    7. DateTimePicker1.ShowUpDown = True
    8. Label1.Text = DateTimePicker1.Value.TimeOfDay.ToString
    9. End Sub
    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!
    Hallo,

    schon mal Danke für die Hilfe.

    Aber in der Ausgabe sind aber immer noch x stellen hinter der Sekunden Ausgabe hh:mm:ss.hztxxxxx

    Weil aber genau die will ich ja weg haben haben also das eine reine Zeit ausgegeben (abgefragt) wird.

    Weil ich die abgefragte Zeit mit einer anderen Zeit vergleichen will und die ist eben in hh:mm:ss Sekunden Format.
    __________________________________________
    mfG.

    André

    __________________________________________
    Angewandte Entwicklungsumgebung: Visual Studio 2019,
    C#, SQL, JAVA, VB(A).NET, DATENBANKEN aller Art,
    Access alle Versionen
    Ich habe nen normalen Timer (Uhrzeit) laufen.

    den vergleiche ich mit dem DateTimePicker, und dieser gibt mir eben die zulange Zeit (Time) aus.
    Und kann natürlich dann keinen gemeinsamen Nenner finden.
    __________________________________________
    mfG.

    André

    __________________________________________
    Angewandte Entwicklungsumgebung: Visual Studio 2019,
    C#, SQL, JAVA, VB(A).NET, DATENBANKEN aller Art,
    Access alle Versionen
    jetzt stehe ich total auf dem Schlauch...

    Wieso kann ich die aktuelle zeit nicht mit dem voreingestelltem Wert in dem DateTimePicker (Uhrzeit) vergleichen ?
    __________________________________________
    mfG.

    André

    __________________________________________
    Angewandte Entwicklungsumgebung: Visual Studio 2019,
    C#, SQL, JAVA, VB(A).NET, DATENBANKEN aller Art,
    Access alle Versionen

    Quark schrieb:

    Aber in der Ausgabe sind aber immer noch x stellen hinter der Sekunden Ausgabe hh:mm:ss.hztxxxxx
    Klar doch, genau so willst Du es ja:

    VB.NET-Quellcode

    1. Label1.Text = DateTimePicker1.Value.TimeOfDay.ToString
    Ansonsten: Lesen bildet:

    SpaceyX schrieb:

    Ausserdem bietet der Typ DateTime, bzw. Date auch die Funktion ToLongTimeString(), bzw. ToShortTimeString. Selbiges gilt für Datumsangaben.
    ==>

    VB.NET-Quellcode

    1. Label1.Text = DateTimePicker1.Value.TimeOfDay.ToShortTimeString()
    Value weiß nix von der Formatierung der Anzeige im Control.
    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!
    Also das ist der timer (laufende Uhrzeit)

    VB.NET-Quellcode

    1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Timer1.Enabled = True
    2. Label1.Text = DateTime.Now.ToString("HH:mm:ss")
    3. 'Debug.Print(DateTimePicker1.Value.TimeOfDay.ToString)
    4. If DateTimePicker1.Value.TimeOfDay.ToString = Label1.Text Then
    5. Call Button1_Click(sender, New System.EventArgs())
    6. End If
    7. End Sub



    und wenn ich DateTimePicker1.Value.TimeOfDay.ToShortTimeString mache meldet er mir nen Fehler...



    __________________________________________
    mfG.

    André

    __________________________________________
    Angewandte Entwicklungsumgebung: Visual Studio 2019,
    C#, SQL, JAVA, VB(A).NET, DATENBANKEN aller Art,
    Access alle Versionen

    Quark schrieb:

    meldet er mir nen Fehler...
    Wenn Du dann mit Daten arbeitest statt mit Strings und der ehler tritt immer noch auf, kannst Du ja mal die Fehlermeldung und die Fehlerzeile posten.
    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!
    Stimmt, du hast recht.....

    Ich habe im falschen bogen gedacht... 8| :wacko:


    ich mache nun das ich DateTime.Now einfach mit DateTimePicker1.Value vergleiche...


    Hab ich echt zu kompliziert gedacht ;)

    Vielen Dank an alle die ich genervt habe :thumbsup: :thumbsup: :thumbsup:
    __________________________________________
    mfG.

    André

    __________________________________________
    Angewandte Entwicklungsumgebung: Visual Studio 2019,
    C#, SQL, JAVA, VB(A).NET, DATENBANKEN aller Art,
    Access alle Versionen

    Quark schrieb:

    DateTime.Now einfach mit DateTimePicker1.Value vergleiche
    Auch da musst Du sehen, dass Du nur Datum und / oder Zeit vergleichst, ggf. Sekunden und Millisekunden auf Null setzen.
    DateTime.Now.Date bringt z.B. die Datumskomponente mit genullter Zeit.
    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!
    Falls hier noch jemand liest, ich hab ein ähnliches Problem:

    ein DateTimePicker ist mit CostumFormat = "HH:mm" formatiert. Die Werte in eine MySQL-Db zu speichern geht problemlos. Dort steht "11:00:00". Die Spalte ist als Time formatiert.
    Aber wie bekomme ich diesen Wert wieder in den DateTimePicker?

    VB.NET-Quellcode

    1. pkTimeR(Ix).Value = CDate(row("Reissen"))

    funktioniert nicht: ex = {"Ungültige Konvertierung von Typ TimeSpan in Typ Date."}
    Wie muss ich TimeSpan formatieren?
    Welchen Datentyp hat

    Gerd_F schrieb:

    VB.NET-Quellcode

    1. row("Reissen")
    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!
    TimeSpan
    Der Datentyp kommt aus der MySQL-DB und ist dort mit TIME angegeben.
    Mir ist schon klar, dass CDate(row("Reissen")) für TimeSpan seltsam aussieht, aber das war das Einzige, was VB akzeptiert hat.