Как удалить временную часть даты в C # только в объекте DateTime? - PullRequest
393 голосов
/ 25 мая 2011

Мне нужно удалить часть времени даты времени или, возможно, иметь дату в следующем формате в форме object, а не в форме string.

06/26/2009 00:00:00:000

Я не могу использовать любые string методы преобразования, так как мне нужна дата в object форме.

Я сначала попытался преобразовать DateTime в string, удалить из него дату, относящуюся ко времени, но она добавляет 12:00:00 AM, как толькокогда я конвертирую его обратно в DateTime object обратно.

Ответы [ 37 ]

2 голосов
/ 12 августа 2011

По моему опыту, ни одно из указанных решений не сработало, возможно, потому что я хотел удалить время из извлеченной даты из базы данных, но код ниже работал нормально:

var date = target_date.Value.ToString("dd/MM/yyyy"); 
2 голосов
/ 19 августа 2014

Объявите переменную как строку.

пример:

public string dateOfBirth ;

, затем присвойте значение как:

dateOfBirth = ((DateTime)(datetimevaluefromDB)).ToShortDateString();
2 голосов
/ 02 декабря 2014

Если вы преобразуете его в строку, вы можете легко сделать это следующим образом.

Я принимаю дату в качестве объекта DateTime.

date.ToString("d");

Это даст вам только дату.

1 голос
/ 06 ноября 2014

Используйте бит RegEx:

Regex.Match(Date.Now.ToString(), @"^.*?(?= )");

Создает дату в формате: дд / мм / гггг

1 голос
/ 27 марта 2019

Чтобы получить только часть даты, используйте метод ToString (),

пример: DateTime.Now.Date.ToString ("дд / мм / гггг")

Примечание.в формате дд / мм / гггг должен быть написан с заглавной буквы

1 голос
/ 04 сентября 2014

Использование .Date объекта DateTime будет игнорировать часть времени.

Вот код:

DateTime dateA = DateTime.Now;
DateTime dateB = DateTime.Now.AddHours(1).AddMinutes(10).AddSeconds(14);
Console.WriteLine("Date A: {0}",dateA.ToString("o"));
Console.WriteLine("Date B: {0}", dateB.ToString("o"));
Console.WriteLine(String.Format("Comparing objects A==B? {0}", dateA.Equals(dateB)));
Console.WriteLine(String.Format("Comparing ONLY Date property A==B? {0}", dateA.Date.Equals(dateB.Date)));
Console.ReadLine();

Выход:

>Date A: 2014-09-04T07:53:14.6404013+02:00
>Date B: 2014-09-04T09:03:28.6414014+02:00
>Comparing objects A==B? False
>Comparing ONLY Date property A==B? True
1 голос
/ 15 февраля 2016

Получение части Date объекта DateTime не сработало для меня, потому что я работаю на стороне клиента, а возвращенные значения веб-службы имеют некоторые даты null. В результате он пытается получить часть Date с нулевым значением и выдает исключение времени выполнения. В следующем примере показано, как я решил свою проблему:

string dt = employer.BirthDay.ToString();
if(dt == ""){ dt = "N/A";}
else dt = dt.Substring(0,10);
  1. Получить значение DateTime в виде строки в строковую переменную.
  2. Проверьте, не является ли оно нулевым. Если ноль, присвойте строковую переменную.
  3. Если не ноль, получить первые 10 символов строки DateTime и присвоить ее строковой переменной.

Я делюсь этим для дальнейшего использования.

1 голос
/ 17 декабря 2014

Для использования списком данных, повторителем .. на странице aspx: <% # Eval ("YourDateString"). ToString (). Remove (10)%>

1 голос
/ 19 ноября 2015

Этот код дает четкое представление о написании Date, а также Time отдельно

string time = DateTime.Now.Hour.ToString("00") + ":" + DateTime.Now.Minute.ToString("00") + ":" + DateTime.Now.Second.ToString("00");
        string date = DateTime.Now.ToString("M-dd-yyyy");
        MessageBox.Show(date + "\n" + time);

Надеюсь, это поможет.

1 голос
/ 23 августа 2015

Это можно сделать просто так:

var dateOnly = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...