日期时间选取器控件不显示 AM/PM



我在使用自定义格式的 DateTimePicker 控件时遇到问题,该格式包含两个字母的 A.M./P.M. 缩写。

使用 "en-US" CultureInfo DateTimeFormat.ShortTimePattern 会导致"嗯:嗯啰嗦"。

但是使用以下代码在日期时间选择器中将其设置为自定义格式:

Dim curCul As CultureInfo = New CultureInfo("en-US")
dtpTime.Format = DateTimePickerFormat.Custom
dtpTime.CustomFormat = curCul.DateTimeFormat.ShortTimePattern

结果仅显示小时和分钟。但是,我还需要AM/PM部分。

例子:

上午 11:

04 显示为 11:04

下午 2:00

显示为 2:00

补充说明:我注意到日期时间选择器会跟踪正确的时间。如果我增加时间(我对此日期时间选取器控件使用 ShowUpDown = true)并将小时数增加 12 并将更改保存到数据库中,则 AM/PM 已更改。因此,似乎"仅"是关于显示AM/PM部分的问题。

感谢您的任何帮助。Frank

试试这个

dtpTime.Format = DateTimePickerFormat.Custom
dtpTime.CustomFormat = "hh:mm tt"

我有同样的问题。这是"为什么":实际上根据MS:https://support2.microsoft.com/Default.aspx?scid=kb%3ben-us%3b889834&x=18&y=19日期选取器不使用当前线程区域性:它使用用户区域设置。因此,如果您强制日期选择器自定义格式包含"tt"的内容,并且如果用户区域设置没有任何指示符......好吧,它不会被显示。

试试这个:

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
确保在 Windows 设置中也已正确设置时间格式以显示

AM/PM。 Windows 中的时间格式也应设置为 H:mm tt 以正确显示结果。

最新更新