我有一个时间选择器(datetimepicker),格式为 HH:mm - 24 小时制。它显示为 00 到 24 和 00 到 59,不允许输入无效值。这正是我想要的。
但是,它使用 AM 和 PM 指示符返回 12 小时的值。这意味着当用户输入“00”时,它返回为“12”,而“14”返回为“2:00”。这不是我想要的。
我可以测试并转换这些不需要的返回值,但肯定(?)有一种更优雅的方式可以说服这个东西给我我想要的值,而不是检查这些特殊条件?我可能忽略了一些简单的属性?
我有一个时间选择器(datetimepicker),格式为 HH:mm - 24 小时制。它显示为 00 到 24 和 00 到 59,不允许输入无效值。这正是我想要的。
但是,它使用 AM 和 PM 指示符返回 12 小时的值。这意味着当用户输入“00”时,它返回为“12”,而“14”返回为“2:00”。这不是我想要的。
我可以测试并转换这些不需要的返回值,但肯定(?)有一种更优雅的方式可以说服这个东西给我我想要的值,而不是检查这些特殊条件?我可能忽略了一些简单的属性?
您如何从控件中获取输入的时间值?
如果您有一个DateTimePicker
控件并将其Format
属性设置为Custom
,并将其CustomFormat
属性设置为,则当您读取该属性时HH:mm
,您将获得 24 小时格式时间(作为一种类型) 。DateTime
Value
编辑:如果您使用该ToString()
值(如您在上面的评论中所说),这将使用您当前的本地化设置。DateTime
从(ie. DateTime.Hour
DateTime.Minute
)读取值会更好。
当您读取该值时,您需要使用:
string value = dateTimePicker.Value.ToString("HH:mm");
如果您只使用Value.ToString()
,您将获得默认的(12 小时)字符串格式。