Member 12911733 Ответов: 3

Как извлечь дату из datetime в C# без преобразования ее в строку


Привет
Я совершенно новичок в C#

У меня есть один класс его структура такова

public class Student_Info
 {
     public String Student_Name;
     public DateTime DateofBirth;


 }



Я присваиваю ему такие значения, как это

Student_Info student = new Student_Info();
           student.Student_Name = "XYZ";
           student.DateofBirth = Convert.ToDateTime("2019-01-01");

           MessageBox.Show(student.Student_Name + " " + student.DateofBirth);



но выход XYZ 1/1/2019 12:00:00 AM

Я хочу этот вывод XYZ 2019-01-01

Я хочу удалить часть времени и но не хочу менять ее на строку

Нужна помощь ?

Заранее спасибо

Что я уже пробовал:

Я попытался преобразовать его в строку и извлечь он работает но не в соответствии с моими требованиями

3 Ответов

Рейтинг:
2

OriginalGriff

Чтобы добавить к тому, что говорят другие, это не очень хорошая идея полагаться на методы преобразования, особенно не с DateTime и определенно не с чем-то, что пользователь будет вводить. Convert создает исключение, если входные данные не соответствуют ожидаемым, и это обычно означает, что ваше приложение выходит из строя. Вместо этого используйте TryParse или TryParseExact, которые возвращают индикатор успеха / неудачи bool - позволяя вам сообщить пользователю, что возникла проблема, и позволить ему повторно ввести ее.

DateTime dt;
if (!DateTime.TryParse(userInputString, out dt))
   {
   ... report problem to user ...
   return;
   }
... you can use the valid DateTime value here.


BillWoodruff

+5 абсурд это не вверх-проголосовали !

Рейтинг:
0

BillWoodruff

Если вы используете DateTime.ToShortDateString, у вас нет контроля над форматом вывода, и не может произвести форматирование ОП просит ... если только культура по умолчанию на машине OP не окажется в том формате, который показывает OP.

Рейтинг:
0

BillWoodruff

Используйте 'TryParse, как показывает OriginalGriff в своем решении !

Чтобы получить нужный вам выходной формат:

MessageBox.Show(student.Student_Name + " " + student.DateofBirth.ToString("yyyy-MM-dd"));

Параметр "гггг-ММ-ДД" для 'ToString-это строка формата [^], [^], который управляет рендерингом DateTime в выходной контекст.