DateTimePicker zeigt Zeit nicht im festgelegten Format an

31/12/2008 - 17:21 von Bernd Schend | Report spam
Hallo zusammen,

ich verwende einen DateTimePicker zum Anzeigen/Ändern des
Bearbeitungsdatums eines Word-Dokuments. Ist das Dokument in der
Sprache "en-US" geschrieben, soll die Zeit natürlich im US-Format
angezeigt werden. Dazu ermittle ich über
Dim DTFI As DateTimeFormatInfo = CultInfo.DateTimeFormat
den zugehörigen Format-String.
Als Ergebnis erhalte ich "h:mm tt" (tt steht für AM bzw. PM) - soweit
so gut.
Leider kehrt mein DateTimePicker das "tt" unter den Teppich, d.h. er
zeigt nur "5:05" an statt "5:05 PM".

Habt ihr eine Idee, woran dies liegen könnte?

Euch allen einen guten Rutsch.
Bernd

P.S.:
Ich verwende VS2008, Framework 3.5. OS: Windows Vista (Sprache DE)

Um auszuschließen, dass das Problem von meinem Word-Addin
verursacht wird, habe ich ein neues Projekt mit nur einer Form
angelegt, die wiederum nur einen DTP enthàlt:
Me.DateTimePicker1.CustomFormat = "h:mm tt"
Me.DateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom

Von dem eingestellten Format wird auch hier nur "h:mm" berücksichtigt.
 

Lesen sie die antworten

#1 Martin H.
31/12/2008 - 17:53 | Warnen spam
Hallo Bernd,


Als Ergebnis erhalte ich "h:mm tt" (tt steht für AM bzw. PM) - soweit
so gut.
Leider kehrt mein DateTimePicker das "tt" unter den Teppich, d.h. er
zeigt nur "5:05" an statt "5:05 PM".

Habt ihr eine Idee, woran dies liegen könnte?



Es liegt daran, dass Du auf Deinem Rechner kein AM/PM angegeben hast.
Wenn Du in den "Regions- und Sprachoptionen" in der Systemsteuerung AM
für Vormittag und PM für Nachmittag einstellst, zeigt der DateTimePicker
diese auch an.

Wenn Du das "AM/PM" unabhàngig von den Usereinstellungen anzeigen
willst, kannst Du das folgendermaßen erreichen:

Private Sub DateTimePicker1_ValueChanged(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
DateTimePicker1.ValueChanged
If DateTimePicker1.Value.Hour > 11 Then
DateTimePicker1.CustomFormat = "hh:mm:ss 'PM'"
Else
DateTimePicker1.CustomFormat = "hh:mm:ss 'AM'"
End If
End Sub

Allerdings musst Du diese Sub einmal beim Initialisieren des
DateTimePickers aufrufen.

Beste Grüße,

Martin

Ähnliche fragen