Как удалить временную часть даты в C# только в объекте DateTime?

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

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

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

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

Комментарии к вопросу (5)
Решение

Используйте свойство Дата:

var dateAndTime = DateTime.Now;
var date = dateAndTime.Date;

Переменная date будет содержать дату, временная часть будет 00:00:00.

Комментарии (12)

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

DateTime dateAndTime = DateTime.Now;
Console.WriteLine(dateAndTime.ToString("dd/MM/yyyy")); // Will give you smth like 25/05/2011

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

Комментарии (5)

Используйте метод ToShortDateString. См. документацию http://msdn.microsoft.com/en-us/library/system.datetime.toshortdatestring.aspx

var dateTimeNow = DateTime.Now; // Return 00/00/0000 00:00:00
var dateOnlyString = dateTimeNow.ToShortDateString(); //Return 00/00/0000
Комментарии (2)

Посмотрите на свойство DateTime.Date.

Получает компонент даты данного экземпляра.

Комментарии (3)

В "дата" свойство возвращает дату в полночь.

Одним из вариантов может быть, чтобы получить отдельные значения (день/месяц/год) отдельно и храните его в нужный тип.

var dateAndTime = DateTime.Now; 
int year = dateAndTime.Year;
int month = dateAndTime.Month;
int day = dateAndTime.Day;

string.Format("{0}/{1}/{2}", month, day, year);
Комментарии (0)

Ни один из вышеперечисленных ответов решить мою проблему на WinForms.

самый простой способ добраться до только дата-это простая функция в datetime:

DateTime dt = DateTime.now;
String BirthDate = dt.ToShortDateString();

Вам останется только дата в строке день рождения .

Комментарии (2)

Попробуйте сделать свои собственные структуры для этого. Объект datetime будет иметь дату и время

Комментарии (2)

Вы можете'т. Datetime в .Сетка всегда есть время по умолчанию 00:00:00:000. Дата свойство типа datetime также Датавремя (!), таким образом, время по умолчанию 00:00:00:000, а также.

Это дефицит .Framework и можно утверждать, что datetime в .Чистая нарушает единый принцип ответственности.

Комментарии (7)

DateTime.Date

var newDate = DateTime.Now; //newDate.Date property is date portion of DateTime
Комментарии (2)

Вот еще один способ, используя строку.Формат`

    DateTime todaysDate = DateTime.UtcNow;

    string dateString = String.Format("{0:dd/MM/yyyy}", todaysDate);

    Console.WriteLine("Date with Time: "+ todaysDate.ToString());

    Console.WriteLine("Date Only : " + dateString);

Выход:

Date with Time: 9/4/2016 11:42:16 AM

Date Only : 04/09/2016

Это также работает, если дата и время хранятся в базе данных.

Дополнительные даты и время проверить эти ссылки:

Ссылка 1

Ссылка 2

Надеюсь, что помогает.

Комментарии (1)

Этот способ получить только дату без времени

DateTime date = DateTime.Now;
string Strdateonly = date.ToString("d");

Вывод = 5/16/2015

Комментарии (1)

Я написал DateOnly структуры. При этом используется тип datetime под кожу, но нет времени части публично разоблачил:


using System;

public struct DateOnly : IComparable, IFormattable, IComparable, IEquatable
{

    private DateTime _dateValue;

    public int CompareTo(object obj)
    {
        if (obj == null)
        {
            return 1;
        }

        DateOnly otherDateOnly = (DateOnly)obj;
        if (otherDateOnly != null)
        {
            return ToDateTime().CompareTo(otherDateOnly.ToDateTime());
        }
        else
        {
            throw new ArgumentException("Object is not a DateOnly");
        }
    }

    int IComparable.CompareTo(DateOnly other)
    {
        return this.CompareToOfT(other);
    }
    public int CompareToOfT(DateOnly other)
    {
        // If other is not a valid object reference, this instance is greater.
        if (other == new DateOnly())
        {
            return 1;
        }
        return this.ToDateTime().CompareTo(other.ToDateTime());
    }

    bool IEquatable.Equals(DateOnly other)
    {
        return this.EqualsOfT(other);
    }
    public bool EqualsOfT(DateOnly other)
    {
        if (other == new DateOnly())
        {
            return false;
        }

        if (this.Year == other.Year && this.Month == other.Month && this.Day == other.Day)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    public static DateOnly Now()
    {
        return new DateOnly(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
    }

    public static bool TryParse(string s, ref DateOnly result)
    {
        DateTime dateValue = default(DateTime);
        if (DateTime.TryParse(s, out dateValue))
        {
            result = new DateOnly(dateValue.Year, dateValue.Month, dateValue.Day);
            return true;
        }
        else
        {
            return false;
        }
    }

    public static DateOnly Parse(string s)
    {
        DateTime dateValue = default(DateTime);
        dateValue = DateTime.Parse(s);
        return new DateOnly(dateValue.Year, dateValue.Month, dateValue.Day);
    }

    public static DateOnly ParseExact(string s, string format)
    {
        CultureInfo provider = CultureInfo.InvariantCulture;
        DateTime dateValue = default(DateTime);
        dateValue = DateTime.ParseExact(s, format, provider);
        return new DateOnly(dateValue.Year, dateValue.Month, dateValue.Day);
    }

    public DateOnly(int yearValue, int monthValue, int dayValue) : this()
    {
        Year = yearValue;
        Month = monthValue;
        Day = dayValue;
    }

    public DateOnly AddDays(double value)
    {
        DateTime d = new DateTime(this.Year, this.Month, this.Day);
        d = d.AddDays(value);
        return new DateOnly(d.Year, d.Month, d.Day);
    }

    public DateOnly AddMonths(int months)
    {
        DateTime d = new DateTime(this.Year, this.Month, this.Day);
        d = d.AddMonths(months);
        return new DateOnly(d.Year, d.Month, d.Day);
    }

    public DateOnly AddYears(int years)
    {
        DateTime d = new DateTime(this.Year, this.Month, this.Day);
        d = d.AddYears(years);
        return new DateOnly(d.Year, d.Month, d.Day);
    }

    public DayOfWeek DayOfWeek
    {
        get
        {
            return _dateValue.DayOfWeek;
        }
    }

    public DateTime ToDateTime()
    {
        return _dateValue;
    }

    public int Year
    {
        get
        {
            return _dateValue.Year;
        }
        set
        {
            _dateValue = new DateTime(value, Month, Day);
        }
    }

    public int Month
    {
        get
        {
            return _dateValue.Month;
        }
        set
        {
            _dateValue = new DateTime(Year, value, Day);
        }
    }

    public int Day
    {
        get
        {
            return _dateValue.Day;
        }
        set
        {
            _dateValue = new DateTime(Year, Month, value);
        }
    }

    public static bool operator == (DateOnly aDateOnly1, DateOnly aDateOnly2)
    {
        return (aDateOnly1.ToDateTime() == aDateOnly2.ToDateTime());
    }

    public static bool operator != (DateOnly aDateOnly1, DateOnly aDateOnly2)
    {
        return (aDateOnly1.ToDateTime() != aDateOnly2.ToDateTime());
    }

    public static bool operator > (DateOnly aDateOnly1, DateOnly aDateOnly2)
    {
        return (aDateOnly1.ToDateTime() > aDateOnly2.ToDateTime());
    }

    public static bool operator < (DateOnly aDateOnly1, DateOnly aDateOnly2)
    {
        return (aDateOnly1.ToDateTime() < aDateOnly2.ToDateTime());
    }

    public static bool operator >= (DateOnly aDateOnly1, DateOnly aDateOnly2)
    {
        return (aDateOnly1.ToDateTime() >= aDateOnly2.ToDateTime());
    }

    public static bool operator 
Комментарии (0)

Дата использования.ToShortDateString (), чтобы получить дату без времени компонента

ВАР дата = Датавремя.Сейчас ВАР shortDate = дата.ToShortDateString() //будет дать вам 16/01/2019 дата использования.ToString() для настройки формата даты

ВАР дата = Датавремя.Сейчас ВАР shortDate = дата.Метод toString(&#39;ДД-МММ-гггг&#39;) //дам вам 16-янв-2019

Комментарии (0)

Я'м удивлен, никто не упомянул Датавремя.Сегодня

var date = DateTime.Today;
// {7/1/2014 12:00:00 AM}

См MSDN

Комментарии (1)

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

Я'м принимая дату как свой объект datetime.

date.ToString("d");

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

Комментарии (0)

Вы можете попробовать это единственная дата из даты

String.Format("{0:d/M/YYYY}",dt);

Здесь DT Датавремя

Комментарии (0)

Наткнулся на этот пост, когда пытается решить оригинальным В.

Я использую Asp.Net и после некоторых исследований я обнаружил, когда вы привязки к значению даты в коде, вы можете падение время, поэтому он не будет отображаться на экране.

На C#:

DateTime Today = DateTime.Now;

аспн:

Комментарии (0)

использовать

DateTime.Now.ToString("dd-MM-yyyy");
Комментарии (0)

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

пример: Датавремя.Сейчас.Дата.Метод toString("с ДД/ММ/гггг и")

Примечание: Мм в формате ДД/ММ/гггг должны быть оприходованы

Комментарии (0)

Создать структуру, которая содержит только нужные свойства. Затем метод расширения, чтобы легко получить, что struct из экземпляра объекта datetime.

public struct DateOnly
{
    public int Day { get; set; }
    public int Month { get; set; }
    public int Year { get; set; }
}

public static class DateOnlyExtensions
{
    public static DateOnly GetDateOnly(this DateTime dt)
    {
        return new DateOnly
        {
            Day = dt.Day,
            Month = dt.Month,
            Year = dt.Year
        };
    }
}

Использование

DateTime dt = DateTime.Now;
DateOnly result = dt.GetDateOnly();
Комментарии (0)