Cum pentru a elimina porțiuni timp de C# în DateTime obiect numai?

Am nevoie pentru a elimina timpul parte din timp data sau probabil trebuie data în următorul format din "obiect" forma în formă de "string".

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

Eu nu pot folosi orice string metode de conversie ca am nevoie de la data în "obiect" forma.

Am încercat mai întâi conversia "DateTime" a o string, elimina timpul specifică data de la ea, dar se adaugă 12:00:00 cât de curând voi converti înapoi la "DateTime ""obiect" din nou.

Comentarii la întrebare (5)
Soluția

Utilizați Data proprietăți:

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

"Data" variabilă va conține data, ora parte va fi 00:00:00.

Comentarii (12)

Puteți utiliza formatul de siruri de caractere pentru a da șir de ieșire format vrei.

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

Cititi mai multe despre Custom data și ora format siruri de caractere.

Comentarii (5)

Utilizați metoda ToShortDateString. Consultați documentația 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
Comentarii (2)

Avea o privire de la DateTime.Data proprietăți.

Devine data componentă a acestui exemplu.

Comentarii (3)

"Data" de proprietate va reveni la data la miezul noptii.

O opțiune ar putea fi pentru a obține valorile individuale (zi/lună/an) separat și depozitați-l în tipul dorit.

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

string.Format("{0}/{1}/{2}", month, day, year);
Comentarii (0)

Nici unul dintre raspunsurile de mai sus mi-a rezolvat problema pe winforms.

cel mai simplu mod de a ajunge la DOAR data este simplă funcție în Datetime:

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

Va trebui doar data în Ziua de coarde .

Comentarii (2)

Încercați să face propria Structura pentru asta. DateTime obiect va avea data și ora atât

Comentarii (2)

Puteți't. Un DateTime .NET au întotdeauna un timp, obligațiile la 00:00:00:000. Data proprietate de un DateTime este, de asemenea, un DateTime (!), având astfel un timp prestabilit la 00:00:00:000 fel de bine.

Acesta este un deficit în .NET Framework, și s-ar putea argumenta că DateTime .NET încalcă Singur Responsabilitatea Principiu.

Comentarii (7)

DateTime.Data

var newDate = DateTime.Now; //newDate.Date property is date portion of DateTime
Comentarii (2)

Aici este o altă metodă utilizarea Șir de caractere.Format

    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);

Ieșire:

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

Date Only : 04/09/2016

Aceasta funcționează, de asemenea, în cazul în care Data de Timp sunt stocate în baza de date.

Pentru Mai multe Data și Ora de formatare a verifica aceste link-uri:

Referință 1

Referință 2

Sper că vă ajută.

Comentarii (1)

Acest mod de a obține singura data fara timp

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

Ieșire = 5/16/2015

Comentarii (1)

Am scris un `DateOnly structura. Acesta utilizează un DateTime sub piele, dar nici un moment de piese sunt expuse în mod public:


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 
Comentarii (0)

Utilizare data.ToShortDateString() pentru a obține data fara componenta de timp

var data = DateTime.Acum var shortDate = data.ToShortDateString() //va da 16/01/2019 utilizare data.ToString() pentru a personaliza formatul datei

var data = DateTime.Acum var shortDate = data.ToString(&#39;dd-MMM-yyyy&#39;) //va da 16-Jan-2019

Comentarii (0)

Am'm-a surprins nimeni nu a menționat DateTime.Astăzi

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

Vezi MSDN

Comentarii (1)

Dacă sunteți conversia la string, puteți face cu ușurință de genul asta.

Am'm a lua data ca obiect DateTime.

date.ToString("d");

Acest lucru vă va oferi doar data.

Comentarii (0)

Puteți Încerca Acest lucru pentru Singura Data La Datetime

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

Unde dt este "DateTime"

Comentarii (0)

A venit peste acest post, atunci când încearcă să rezolve original Q.

Eu sunt, folosind Asp.Net și după unele cercetări am găsit, atunci când sunt obligatorii la valoarea de la data în codul spatele, poți renunța la timp, astfel că nu va afișa pe ecran.

C#:

DateTime Today = DateTime.Now;

aspx:

Comentarii (0)

utilizarea

DateTime.Now.ToString("dd-MM-yyyy");
Comentarii (0)

Pentru a obține numai de la data porțiune folosi ToString() metoda,

exemplu: DateTime.Acum.Data.ToString("zz/LL/aaaa")

Notă: Mm în formatul dd/MM/yyyy trebuie să fie capitalizate

Comentarii (0)

A crea o structură care deține doar proprietățile pe care doriți. Apoi o metodă de prelungire a obține cu ușurință că struct de o instanță de 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
        };
    }
}

Utilizare

DateTime dt = DateTime.Now;
DateOnly result = dt.GetDateOnly();
Comentarii (0)