DateTimePicker:选择日期和时间

Posted

技术标签:

【中文标题】DateTimePicker:选择日期和时间【英文标题】:DateTimePicker: pick both date and time 【发布时间】:2010-09-10 17:51:55 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MM/dd/yyyy hh:mm:ss";  

或者你想怎么布局。然后您可以直接输入日期/时间。如果您使用 MMM,则需要使用月份的数值输入,除非您自己为此编写了一些代码(例如,5 月份有 5 个结果)

不知道日期和时间的选择器。对我来说,这听起来像是一个自定义控件。

【讨论】:

24 小时制:“dd MM yyyy HH mm ss”。我猜开发人员必须关心本地化(不同国家/地区的不同日期/时间格式)。来自奥地利的问候。 @hfrmobile - 您还可以使用 System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePatternSystem.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern 获取当前文化的格式。 MSDN link 同意@WaiHaLee:Dim date As String = CultureInfo...ShortDatePattern Dim time As String = CultureInfo...ShortTimePattern dtpThing.Format = DateTimePickerFormat.Custom dtpThingEnd.CustomFormat = date + " " + time 你也可以手动限制时间组件:Dim date As String = CultureInfo...ShortDatePattern Dim time As String = CultureInfo...ShortTimePattern dtpThing.Format = DateTimePickerFormat.Custom dtpThingEnd.CustomFormat = date + " HH:mm" 我使用了这个,但我将 CustomFormat 放在选择器属性中,而不是使用代码【参考方案2】:

Job 最好使用两个 DateTimePicker 一个是日期部分的默认值,第二个 DateTimePicker 是时间部分。如下格式化第二个 DateTimePicker。

      timePortionDateTimePicker.Format = DateTimePickerFormat.Time;
      timePortionDateTimePicker.ShowUpDown = true;

捕获后两者应该是这样的

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

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

要将 DateTime 分配给这两个控件,请使用以下代码

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

【讨论】:

是否有可能将分钟频率增加到 30 分钟?当用户点击向上或向下按钮时? 很好的答案!我制作了自定义 UserControl,以便在我的项目中多次重复使用它。 感谢您的建议。有两个不同的日期和时间控件是有意义的。【参考方案3】:

不幸的是,这是框架中的许多用词不当之一,或者充其量是违反 SRP。

要将 DateTimePicker 用于时间,请将 Format 属性设置为 Time 或自定义(如果您想控制时间格式,请使用自定义) CustomFormat 属性)。然后将 ShowUpDown 属性设置为 true。

虽然用户可以手动设置日期和时间,但他们不能使用 GUI 来设置两者。

【讨论】:

【参考方案4】:

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

例如,自定义格式“ddddd, MMMM dd, yyyy hh:mm:ss tt”会给您这样的结果:“Thursday, August 20, 2009 02:55 :23 PM”。

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

【讨论】:

"DateTime Picker 可用于选择日期和时间,这就是它被称为“日期和时间选择器”的原因。" - 除了它不能,这就是问这个问题的原因。 确实,这个控件很牛逼。我刚刚花了一个下午的时间调试代码,直到我意识到这该死的东西会返回一个代表用户编辑日期 OR 时间的值,但不能同时返回。我不得不发泄一下:控件如何显示一个有效的用户编辑的日期和时间(我的自定义格式是yyyy-MM-dd HH:mm),然后返回一个只反映显示日期和时间的一部分的值。我会称之为错误,但它已经存在了几十年......【参考方案5】:

在 Visual Studio 中转到 dateTimePickerProperties 并将 Format 设置为 Custom。在CustomFormat 下输入您的格式。就我而言,我使用了MMMMdd, yyyy | hh:mm

【讨论】:

他没有问如何在 DateTimePicker 上格式化/显示时间。他在问如何让它选择一个时间(因此命名为 DateTimePicker,人们会认为该控件也可以用于选择一个时间) 这应该是正确的答案。像魅力一样工作【参考方案6】:

你可以让它显示time。从那你可能必须有两个控件(一个日期,一个时间)来完成你想要的。

【讨论】:

【参考方案7】:

恐怕 DateTimePicker 控件没有能力做这些事情。这是一个非常基本(而且令人沮丧!)的控制。您最好的选择可能是找到可以满足您需求的第三方控件。

对于手动输入日期和时间的选项,您可以构建一个带有 TextBox/DateTimePicker 组合的自定义组件来完成此操作,如果第三方控件不是一个选项,它可能会运行得相当好。

【讨论】:

以上是关于DateTimePicker:选择日期和时间的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jQuery datetimepicker 中禁用选定的日期和时间

DateTimePicker控件在选择日期后,为啥时间不改变

带有 minDate 和 maxDate 的 JQuery datetimepicker 异常日期

Symfony2 和 DateTimePicker 日期格式错误?

DateTimePicker - 如何将时间间隔设置为 20 分钟、一周中允许的特定日期和一天中的时间?

VC中datetimepicker控件如何显示日期和时间,默认的只有日期。。