Почему присвоение значения объекту типа даты не дает правильного значения? - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть средство выбора даты winforms, которое имеет собственный формат как

txtEndDateTextBox.Format = DateTimePickerFormat.Custom
        txtEndDateTextBox.CustomFormat = "yyyy-MM-dd"

, но когда я назначаю его на

 n.N_DATE = txtEndDateTextBox.Value

, ему присваивается значение #11/7/2019 12:41:02 AM#

The data type of N_DATE is Дата`.

То же самое относится и к другому, т. Е.

        NTime.Format = DateTimePickerFormat.Custom
        NTime.CustomFormat = "HH:mm:ss"

при назначении на n.NTime типа даты оно имеет значение #1/1/0001 12:00:00 AM#

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Когда вы помещаете значение в свойство TextBox.Text, оно становится строкой. Не передавайте значение через TextBox. Если n.N_Date ожидает дату, вы должны передать ей дату, а не строку.

n.N_DATE = DateTimePicker1.Value

Или, если вам нужен только компонент даты.

n.N_Date = DataTimePicker1.Value.Date

Если вы должны использовать датуTextBox

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

Замените любой фактический формат на «мм / дд / гггг».

0 голосов
/ 07 ноября 2019

Свойство Value для DateTimePicker всегда DateTime. Формат просто указывает строковое представление значения.

Если вы хотите получить строковое представление значения в указанном формате, вы можете легко использовать свойство Text.

В качестве другого варианта вы всегда можете вызвать 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...