1

我使用 VB.NET 2008 在 Windows7 上制作了一个程序,该程序使用日期和日期时间选择器,效果很好。

像这样:

    With dtp_date1

        'here crashes
        .Text = DateTime.Now.Date.ToString("dd.MM.yyyy.") & " 00:00:00"

        .Format = DateTimePickerFormat.Custom
        .CustomFormat = "dd.MM.yyyy. HH:mm:ss tt"
        .ShowUpDown = False
    End With

    With dtp_date2
        .Text = DateTime.Now.Date.ToString("dd.MM.yyyy.") & " 23:59:59.9999"
        .Format = DateTimePickerFormat.Custom
        .CustomFormat = "dd.MM.yyyy. HH:mm:ss tt"
        .ShowUpDown = False
    End With

这工作正常,直到我把这个程序放到 Windows XP 上。出现错误:

string was not recognized as a valid Datetime

我尝试解决这个问题:

.Text = CDate(DateTimeNow.Date.ToString("dd.MM.yyyy.") & " 00:00:00").ToString

这里得到错误:

从字符串“06.01.2013.00.00.00”到类型“日期”的转换无效。

由于我在程序中有很多地方都有日期,如何解决这个错误?

4

1 回答 1

3

永远不要分配 DateTimePicker.Text 属性。如果您的字符串格式与文化不匹配或控制面板覆盖了日期/时间格式,您将受到抨击。

始终使用 DateTimePicker.Value 属性。DateTime 类型的属性,不受格式问题的影响。使固定:

    Dim now = DateTime.Now.Date
    dtp_date1.Value = now
    dtp_date2.Value = now.AddDays(1) - new TimeSpan(1) 
于 2013-01-06T14:34:50.670 回答