Winforms .net Datepicker 不尊重 24 小时格式?

mic*_*ica 5 .net c# datetimepicker winforms

我有一个格式为 HH:mm - 24 小时制的时间选择器 (datetimepicker)。它显示为 00 到 24 和 00 到 59,并且不允许输入无效值。这正是我想要的。

但是,它使用 AM 和 PM 指标返回 12 小时的值。这意味着当用户输入“00”时返回“12”,“14”返回“2:00”。这不是我想要的。

我可以测试并转换这些不需要的返回值,但是肯定(?)有一种更优雅的方法可以说服这个东西给我我想要的值而不是检查这些特殊条件?我可能忽略了一些简单的属性?

adr*_*nks 6

您如何从控件中获取输入的时间值?

如果您有一个DateTimePicker控件并将其Format属性设置为Custom,并将其CustomFormat属性设置为HH:mm,则DateTime在读取该Value属性时您将获得 24 小时格式时间(作为类型)。

编辑:如果您正在使用该ToString()值(如您在上面的评论中所说),这将使用您当前的本地化设置。从DateTime(即DateTime.Hour DateTime.Minute)读取值会更好。


Ree*_*sey 5

当您读取该值时,您需要使用:

string value = dateTimePicker.Value.ToString("HH:mm");
Run Code Online (Sandbox Code Playgroud)

如果您只使用Value.ToString(),您将获得默认(12 小时)字符串格式。