.net 为什么给日期类型对象赋值不能得到它';s值正确吗?

.net 为什么给日期类型对象赋值不能得到它';s值正确吗?,.net,vb.net,winforms,date,datetime,.net,Vb.net,Winforms,Date,Datetime,我有一个winforms日期时间选择器,它的自定义格式如下 txtEndDateTextBox.Format = DateTimePickerFormat.Custom txtEndDateTextBox.CustomFormat = "yyyy-MM-dd" 但当我把它分配给 n.N_DATE = txtEndDateTextBox.Value 它被指定为#11/7/2019 12:41:02 AM# N_DATE的数据类型为DATE` 另一个也一样,即

我有一个winforms日期时间选择器,它的自定义格式如下

txtEndDateTextBox.Format = DateTimePickerFormat.Custom
        txtEndDateTextBox.CustomFormat = "yyyy-MM-dd"
但当我把它分配给

 n.N_DATE = txtEndDateTextBox.Value
它被指定为
#11/7/2019 12:41:02 AM#

N_DATE的数据类型为
DATE`

另一个也一样,即

        NTime.Format = DateTimePickerFormat.Custom
        NTime.CustomFormat = "HH:mm:ss"
当分配给日期类型的
n.NTime
时,它的值为
\1/1/0001 12:00:00 AM
日期时间选择器的属性始终为
日期时间
。格式仅指定值的字符串表示形式

如果希望以指定格式获取值的字符串表示形式,可以轻松使用该属性

作为另一个选项,您可以随时调用
ToString
方法
DateTime
并传递

示例-1

DateTimePicker1.Format = DateTimePickerFormat.Custom
DateTimePicker1.CustomFormat = "yyyy-MM-dd"
'...
'Then to get text:
Dim DateText As String = DateTimePicker1.Text
示例-2

Dim DateText As String = DateTimePicker1.Value.ToString("yyyy-MM-dd")

将值放入TextBox.Text属性后,它将成为字符串。不要通过文本框传递值。如果n.n_Date需要一个日期,则必须向其传递一个日期,而不是字符串

n.N_DATE = DateTimePicker1.Value
或者,如果您只需要日期组件

n.N_Date = DataTimePicker1.Value.Date
如果必须使用文本框

n.N_Date = DateTime.ParseExact(TextBox1.Text, "mm/dd/yyyy", CultureInfo.InvariantCulture)

替换“mm/dd/yyyy”的实际格式。

值始终是
DateTime
,格式只确定值的字符串表示形式。确定,但必须有某种方法删除它,因为Web服务只需要dateYes,没有。最简单的方法是使用
DateTimePicker
的属性。我检查过,WinForms中没有DateTimePicker的文本属性。它们是属性,但在设计时不可浏览。在代码中使用它。我这样做了,但仍然是在分配后的2019年11月7日12:00:00。注意财产类型。如果将某个内容分配给
DateTime
类型,则该类型将始终为DateTime。如果将其分配给
字符串
,则它将是字符串。类型实际上是日期。如果web服务需要特定格式的日期,那么如果我传递了错误的格式,它将失败。如果web服务需要字符串表示,那么帖子将回答您的问题。如果web服务需要
DateTime
类型,则该格式对于
DateTime
没有意义。