我使用自定义格式的DateTimePicker控件出现问题,该格式包含两个字母的A.M./P.M.缩写
使用“en-US”CultureInfo DateTimeFormat.ShortTimePattern导致 “h:mm tt”。
但是使用以下代码在DateTimePicker中将其设置为自定义格式:
Dim curCul As CultureInfo = New CultureInfo("en-US")
dtpTime.Format = DateTimePickerFormat.Custom
dtpTime.CustomFormat = curCul.DateTimeFormat.ShortTimePattern
仅显示小时和分钟。 然而,我也需要AM / PM部分。
示例:
11:04 AM显示为11:04
2:00 PM显示为2:00
补充说明: 我注意到DateTimePicker会跟踪正确的时间。 如果我增加时间(我对此DateTimePicker控件使用ShowUpDown = true)并将小时增加12并将更改保存到数据库中,则AM / PM已更改。 因此,似乎“仅”是关于显示AM / PM部件的问题。
感谢您的帮助。 弗兰克
答案 0 :(得分:7)
试试这个
dtpTime.Format = DateTimePickerFormat.Custom
dtpTime.CustomFormat = "hh:mm tt"
答案 1 :(得分:3)
我有同样的问题。这对于"为什么" : 实际上根据MS:https://support2.microsoft.com/Default.aspx?scid=kb%3ben-us%3b889834&x=18&y=19 日期选择器不使用当前的线程文化:它使用用户区域设置。 因此,如果您强制使用日期选择器自定义格式包含" tt",并且如果用户区域设置没有任何指示符......那么它将无法显示。
答案 2 :(得分:1)
试试这个:
Private Sub mainform_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label7.Text = DateTime.Now.ToString("MMM dd yyyy hh:mm:ss tt")
End Sub
答案 3 :(得分:0)
确保在Windows设置中您还可以正确设置时间格式以显示AM / PM。 Windows中的时间格式也应设置为H:mm tt以正确显示结果。