【问题标题】:DateTimePicker control with a custom format, how to set the time value?自定义格式的DateTimePicker控件,如何设置时间值?
【发布时间】:2018-04-03 20:58:48
【问题描述】:

我有一个名为 'dtpickStartTime' 的 DateTimePicker 控件,它的自定义格式为 'HH mm' (dtpickStartTime.CustomFormat = "HH mm")。我用它来选择一个工作正常的时间(我可以从它那里得到时间,以那种格式)。但是,我正在努力设定时间。

我正在从一组带有标签PanelField(i).lblStartTime.Text 的控件中设置时间,这有点复杂,但这意味着我试图设置的值是“00 00”或类似的值,即采用该自定义格式

但它似乎不起作用

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

System.InvalidCastException: '从字符串“14 20”到类型'Date'的转换无效。'

有人知道如何以编程方式设置时间吗? 我已经尝试过

JobAddingForm.dtpickStartTime.Value = New DateTime(0, 0, 0, PanelField(i).lblStartTime.Text, 0, 0)

但要做到这一点,您需要将其设置为 (0, 0, 0, 14, 20, 0) 并且标签包含'14 20'的值,所以它看起来像(0, 0, 0, 14 20, 0, 0)

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

【问题讨论】:

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


    【解决方案1】:

    如果您需要将“非标准”字符串转换为日期时间,而不是CDate,您应该使用ParseExactTryParseExact,它们都可以获得指定输入字符串格式的参数。在你的情况下,这应该工作:

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

    【讨论】:

    • 谢谢,这成功了! :D 由于我的声誉低,我无法评价它有用,但我会尽快将其标记为答案:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多