我有一个格式为HH:mm - 24小时时钟的时间选择器(datetimepicker)。它显示为00到24和00到59,并且不允许输入无效值。这正是我想要的。然而,它返回值为12小时,带有AM和PM指示符。这意味着当用户输入“00”时,它返回为“12”,而“14”返回为“2:00”。这不是我想要的。我可以测试并转换这些不需要的返回值,但肯定有一种更优雅的方法来说服这个东西给予我想要的值,而不是检查这些特殊条件?也许是我忽略的一些简单属性?
jei2mxaa1#
如何从控件中获取输入的时间值?如果您有一个DateTimePicker控件,并将其Format属性设置为Custom,将其CustomFormat属性设置为HH:mm,则在读取Value属性时将获得24小时格式时间(作为DateTime类型)。
DateTimePicker
Format
Custom
CustomFormat
HH:mm
Value
DateTime
**编辑:**如果您使用的是ToString()值(如您在上面的评论中所说),这将使用您当前的本地化设置。您最好从DateTime阅读值(即DateTime.HourDateTime.Minute)。
ToString()
DateTime.Hour
DateTime.Minute
lrpiutwd2#
读取值时,需要用途:
string value = dateTimePicker.Value.ToString("HH:mm");
如果您只使用Value.ToString(),您将获得默认(12小时)字符串格式。
Value.ToString()
5gfr0r5j3#
定义特性时:对于“dateTimePicker”控件,请使用大写字母HH而不是小写字母hh来定义小时。例如:“yyyy-MM-ddTHH:mm:ss”将使用24小时时间,“yyyy-MM-ddThh:mm:ss”将使用12小时时间
3条答案
按热度按时间jei2mxaa1#
如何从控件中获取输入的时间值?
如果您有一个
DateTimePicker
控件,并将其Format
属性设置为Custom
,将其CustomFormat
属性设置为HH:mm
,则在读取Value
属性时将获得24小时格式时间(作为DateTime
类型)。**编辑:**如果您使用的是
ToString()
值(如您在上面的评论中所说),这将使用您当前的本地化设置。您最好从DateTime
阅读值(即DateTime.Hour
DateTime.Minute
)。lrpiutwd2#
读取值时,需要用途:
如果您只使用
Value.ToString()
,您将获得默认(12小时)字符串格式。5gfr0r5j3#
定义特性时:对于“dateTimePicker”控件,请使用大写字母HH而不是小写字母hh来定义小时。
例如:“yyyy-MM-ddTHH:mm:ss”将使用24小时时间,“yyyy-MM-ddThh:mm:ss”将使用12小时时间