C# DateTimePicker:同时选择日期和时间

C# DateTimePicker:同时选择日期和时间,c#,.net,winforms,datetimepicker,C#,.net,Winforms,Datetimepicker,是否可以使用DateTimePicker(Winforms)来选择日期和时间(在下拉列表中)?如何更改拾取值的自定义显示?此外,是否可以使用户手动键入日期/时间?不幸的是,这是框架中许多误称之一,或者最多是违反了SRP 要对时间使用DateTimePicker,请将Format属性设置为任意时间 或自定义(如果要使用控制时间格式,请使用自定义) 自定义格式属性)。然后将摊牌属性设置为true 尽管用户可以同时手动设置日期和时间,但他们不能使用GUI同时设置这两种格式。将格式设置为“自定义”,然后

是否可以使用DateTimePicker(Winforms)来选择日期和时间(在下拉列表中)?如何更改拾取值的自定义显示?此外,是否可以使用户手动键入日期/时间?

不幸的是,这是框架中许多误称之一,或者最多是违反了SRP

要对时间使用DateTimePicker,请将Format属性设置为任意时间 或自定义(如果要使用控制时间格式,请使用自定义) 自定义格式属性)。然后将摊牌属性设置为true


尽管用户可以同时手动设置日期和时间,但他们不能使用GUI同时设置这两种格式。

将格式设置为“自定义”,然后指定格式:

dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MM/dd/yyyy hh:mm:ss";  
或者你想怎么安排。然后您可以直接键入日期/时间。如果使用MMM,则需要使用月份的数值进行输入,除非您自己为此编写一些代码(例如,5月份有5个结果)


不知道日期和时间的选择者。听起来像是一个自定义控件。

您可以让它显示出来。因此,您可能需要有两个控件(一个日期,一个时间)来完成您想要的任务。

恐怕DateTimePicker控件无法完成这些任务。这是一个非常基本的(令人沮丧的)控制。您最好的选择可能是找到一个第三方控件,它可以满足您的需要


对于手动键入日期和时间的选项,您可以使用TextBox/DateTimePicker组合构建一个自定义组件来实现这一点,如果第三方控件不是一个选项,它可能会工作得相当好。

DateTime Picker可用于拾取日期和时间,这就是为什么它被称为“日期和时间选择器”。您可以将“格式”属性设置为“自定义”,并在“自定义格式”属性中设置不同格式说明符的组合,以不同格式表示/选择日期/时间。但是,如果要更改日期,则可以使用弹出式日历,而在时间选择的情况下(在同一控件中,您必须使用向上/向下键来更改值)

例如,自定义格式“ddddd,MMMM-dd,yyyy hh:mm:ss tt”将给出如下结果:“2009年8月20日星期四02:55:23 PM


您可以使用不同的格式说明符组合来满足您的需要,例如MMMM将给出“August”,而MM将给出“Aug

最好使用两个日期时间选择器进行作业 其中一个是日期部分的默认值,第二个DateTimePicker是时间部分的默认值

      timePortionDateTimePicker.Format = DateTimePickerFormat.Time;
      timePortionDateTimePicker.ShowUpDown = true;
在你抓到他们之后,他们两个应该是这样的

要从这两个控件获取日期时间,请使用以下代码

DateTime myDate = datePortionDateTimePicker.Value.Date + 
                    timePortionDateTimePicker.Value.TimeOfDay; 
datePortionDateTimePicker.Value  = myDate.Date;  
timePortionDateTimePicker.Value  = myDate.TimeOfDay; 
要将DateTime分配给这两个控件,请使用以下代码

DateTime myDate = datePortionDateTimePicker.Value.Date + 
                    timePortionDateTimePicker.Value.TimeOfDay; 
datePortionDateTimePicker.Value  = myDate.Date;  
timePortionDateTimePicker.Value  = myDate.TimeOfDay; 

在Visual Studio中转到
日期时间选择器的
属性
,并将
格式
设置为
自定义
。在
自定义格式
下输入格式。在我的例子中,我使用了
MMMMdd,yyyy | hh:mm



24小时制:“dd-MM-yyy-HH-MM-ss”。我想开发人员必须关注本地化(不同国家的日期/时间格式不同).来自奥地利的问候。@hfrmobile-您也可以使用
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern
来获取当前区域性的格式。同意@WaiHaLee:
Dim date作为String=CultureInfo…ShortDatePattern Dim time As String=CultureInfo…ShortTimePattern dtpThing.Format=DateTimePickPerformat.Custom dtpThingEnd.CustomFormat=date+“”+time
您还可以手动约束时间组件:
将日期调整为String=CultureInfo…ShortDatePattern将时间调整为String=CultureInfo…ShortTimePattern dtpThing.Format=DateTimePickerFormat.customdtpthingend.CustomFormat=date+“HH:mm”
我使用了这个选项,但我将CustomFormat放在了picker属性中,而不是使用代码“DateTime picker可用于拾取日期和时间,这就是为什么它被称为‘日期和时间选择器’。”-除了它不能,这就是为什么会问这个问题。事实上,这个控件非常令人沮丧。我花了一个下午调试代码,直到我意识到该死的东西将返回一个表示用户编辑的日期或时间的值,但不能同时返回这两个值。我必须发泄一下:控件如何显示有效的用户编辑的日期和时间(我的自定义格式是
yyyy-MM-dd HH:MM
)然后返回一个只反映部分显示日期和时间的值。我称之为bug,但它已经存在几十年了…有可能将分钟频率增加到30分钟吗?当用户单击“向上”或“向下”按钮时?答案很好!我制作了自定义UserControl,在我的项目中多次重复使用它。感谢您的建议。很有意义对日期和时间有两个不同的控件。他不是问如何在DateTimePicker上格式化/显示时间。他是问如何让它选择时间(因此命名为DateTimePicker,人们会认为该控件也可以用于选择时间)。这应该是正确的答案。工作起来很有魅力