DateTimePicker控件具有自定义格式,如何设置时间值?

时间:2017-10-23 10:29:41

标签: vb.net date datetime type-conversion datetimepicker

我有一个名为“<div>”的DateTimePicker控件,它的自定义格式为“HH mm”(dtpickStartTime)。我用它来选择一个工作正常的时间(我得到的时间很好,以那种格式)。但是,我正在努力设定时间。

我从一组控件上设置时间,这些控件上有标签dtpickStartTime.CustomFormat = "HH mm",有点复杂,但所有这些意味着我试图设置的值是'00 00'或类似的,这是在那个自定义中格式

但它似乎无法正常工作

PanelField(i).lblStartTime.Text
  

System.InvalidCastException:'从字符串“14 20”转换为“日期”类型无效。'

有谁知道如何以编程方式设置时间? 我试过了

JobAddingForm.dtpickStartTime.Value = CDate(PanelField(i).lblStartTime.Text)

但要做到这一点,你需要把它作为JobAddingForm.dtpickStartTime.Value = New DateTime(0, 0, 0, PanelField(i).lblStartTime.Text, 0, 0) 并且标签包含'14 20'的值,因此它看起来像(0, 0, 0, 14, 20, 0)

我也不确定要搜索什么来解决这个问题所以我问这个问题,我希望我已经解释得很好,如果需要提供更多信息,我可以这样做。感谢阅读: - )

1 个答案:

答案 0 :(得分:0)

如果您需要将“非标准”字符串转换为DateTime,而不是CDate,则应使用ParseExactTryParseExact,这两个字符串都可以获取指定输入字符串的格式。在你的情况下,这应该工作:

JobAddingForm.dtpickStartTime.Value = DateTime.ParseExact(PanelField(i).lblStartTime.Text, "HH mm", Globalization.CultureInfo.InvariantCulture)