【问题标题】:DateTimePicker control does not show AM/PMDateTimePicker 控件不显示 AM/PM
【发布时间】:2012-09-25 07:06:23
【问题描述】:

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

使用“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 部分似乎“仅”是一个问题。

感谢您的帮助。 弗兰克

【问题讨论】:

    标签: vb.net winforms datetimepicker datetime-format


    【解决方案1】:

    试试这个

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

    【讨论】:

    • 不起作用,我不知道为什么它应该起作用......如果我检查msdn.microsoft.com/en-us/library/…,没有提到“aa”,所以它被简单地解释为文本并显示“aa”
    • 是的,我知道,“en-US”文化的 ShortTimePattern 是“h:mm tt”,如上所述。问题是没有显示代表 AM/PM 的 tt。你可以自己试试……
    • 您能添加您的代码吗?那太好了,谢谢:-)
    • @FrankE,同样的事情,我刚刚将日期时间放在表单上,​​将格式设置为自定义,并以我给出的自定义格式 h:mm tt。 (所有都只在设计师那里完成,它的工作)。
    • 您的操作系统的语言是什么?也许它在你的电脑上工作,因为它是基于英语(?),我是基于德语,这就是为什么我需要改变文化。
    【解决方案2】:

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

    【讨论】:

    • 这就是解决方案!设置当前线程区域性与 DateTimePicker 不兼容。根据报告和此信息,当线程文化与 Windows 用户的区域设置匹配时,它应该可以工作。愚蠢的设计。
    【解决方案3】:

    试试这个:

    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
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2011-10-14
        • 2012-10-10
        • 1970-01-01
        • 2012-01-03
        • 1970-01-01
        • 1970-01-01
        • 2016-03-18
        • 1970-01-01
        相关资源
        最近更新 更多