Wie kann man den Zeitanteil des Datums nur in C # im DateTime-Objekt entfernen?

Ich muss Zeitabschnitt der Datumzeit entfernen oder habe wahrscheinlich das Datum im folgenden Format in der object nicht in der Form der string .

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

Ich kann keine string Konvertierungsmethoden verwenden, da ich das Datum in object benötige.

Ich habe zuerst versucht, die DateTime in eine string DateTime , entferne das zeitspezifische Datum von ihr, aber es fügt 12:00:00 AM hinzu, sobald ich es wieder in das DateTime object zurückkonvertiere.

Solutions Collecting From Web of "Wie kann man den Zeitanteil des Datums nur in C # im DateTime-Objekt entfernen?"

Verwenden Sie die Date- Eigenschaft:

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

Die Datumsvariable enthält das Datum, der 00:00:00 ist 00:00:00 .

Sie können Formatzeichenfolgen verwenden, um der Ausgabezeichenfolge das gewünschte Format zu geben.

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

Lesen Sie hier mehr.

Verwenden Sie die Methode ToShortDateString. Weitere Informationen finden Sie in der Dokumentation 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 

Sehen Sie sich die DateTime.Date- Eigenschaft an.

Ruft die Datumskomponente dieser Instanz ab.

Die Date Eigenschaft gibt das Datum um Mitternacht zurück.

Eine Option könnte sein, die einzelnen Werte (Tag / Monat / Jahr) separat zu erhalten und in dem von Ihnen gewünschten Typ zu speichern.

 var dateAndTime = DateTime.Now; int year = dateAndTime.Year; int month = dateAndTime.Month; int day = dateAndTime.Day; string.Format("{0}/{1}/{2}", month, day, year); 

Versuchen Sie, Ihre eigene Struktur dafür zu machen. DateTime-Objekt wird beide Datum und Uhrzeit haben

Du kannst nicht. Ein DateTime in .NET hat immer eine Zeit, standardmäßig 00: 00: 00: 000. Die Date-Eigenschaft einer DateTime ist ebenfalls eine DateTime (!), So dass die Zeit ebenfalls auf 00: 00: 00: 000 gesetzt ist.

Dies ist ein Mangel in .NET Framework und es könnte argumentiert werden, dass DateTime in .NET das Prinzip der einfachen Verantwortlichkeit verletzt.

Keine der obigen Antworten triggerse mein Problem bei Winforms.

Der einfachste Weg zum NUR- Datum ist die einfache function in Datetime:

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

Sie haben nur ein Datum in der Geburtstagszeichenkette.

DateTime.Datum

Diese Art von erhalten nur Datum ohne Zeit

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

Ausgabe = 5/16/2015

Hier ist eine andere Methode , die String.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); 

Ausgabe:

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

Dies funktioniert auch, wenn die Date Time in der database gespeichert ist.

Für mehr Formatierung von Datum und Uhrzeit überprüfen Sie diese Links:

Referenz 1

Referenz 2

Hoffnung hilft.

Ich bin überrascht, dass niemand DateTime.Today erwähnt hat

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

Siehe MSDN

Kam über diesen Beitrag, als ich versuchte, das ursprüngliche Q zu lösen.

Ich benutze Asp.Net und nach einigen Nachforschungen, die ich gefunden habe, wenn Sie an den Wert des Datums im Code gebunden sind, können Sie die Zeit fallen lassen, so dass sie nicht auf dem Bildschirm angezeigt wird.

C #:

 DateTime Today = DateTime.Now; 

aspx:

 < %: this.Today.ToShortDateString() %> 

benutzen

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

Ich habe eine DateOnly Struktur geschrieben. Dies verwendet eine DateTime unter der Haut, aber keine Zeit, die Teile öffentlich zugänglich gemacht werden:

 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 < = (DateOnly aDateOnly1, DateOnly aDateOnly2) { return (aDateOnly1.ToDateTime() <= aDateOnly2.ToDateTime()); } public static TimeSpan operator - (DateOnly aDateOnly1, DateOnly aDateOnly2) { return (aDateOnly1.ToDateTime() - aDateOnly2.ToDateTime()); } public override string ToString() { return _dateValue.ToShortDateString(); } public string ToString(string format) { return _dateValue.ToString(format); } public string ToString(string fmt, IFormatProvider provider) { return string.Format("{0:" + fmt + "}", _dateValue); } public string ToShortDateString() { return _dateValue.ToShortDateString(); } public string ToDbFormat() { return string.Format("{0:yyyy-MM-dd}", _dateValue); } } 

Dies wird von VB.NET konvertiert, also entschuldigen Sie sich, wenn einige Conversions nicht 100% ig sind.

 string dt = myCalender.SelectedDate.ToString(); string date = dt.Remove(10); displayDate.Content = date; 

Wenn Sie sich das Datum aus dem Kalender nehmen, bekommen wir damit auch Zeit. Was nicht immer erforderlich ist. Damit können wir die Zeit vom Datum entfernen.

Meiner Erfahrung nach funktionierte keine der genannten Lösungen, vielleicht weil ich die Zeit aus dem extrahierten Datum aus der database entfernen wollte, aber der folgende Code funktionierte gut:

 var date = target_date.Value.ToString("dd/MM/yyyy"); 

Sie können dies für das einzige Datum von der Datetime versuchen

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

Wo dt ist die DateTime

Deklarieren Sie die Variable als Zeichenfolge.

Beispiel:

 public string dateOfBirth ; 

Weisen Sie dann einen Wert wie folgt zu:

 dateOfBirth = ((DateTime)(datetimevaluefromDB)).ToShortDateString(); 

Wenn Sie es in eine Zeichenfolge konvertieren, können Sie es einfach so machen.

Ich nehme das Datum als DateTime-Objekt.

 date.ToString("d"); 

Dadurch erhalten Sie nur das Datum.

Ich weiß, dass dies ein alter Post mit vielen Antworten ist, aber ich habe diesen Weg nicht gesehen. Angenommen, Sie haben eine DateTime Variable namens myDate mit dem Datum mit Uhrzeit. Sie können mit diesem Konstruktor ein neues DateTime Objekt ohne den DateTime erstellen:

 public DateTime(int year, int month, int day); 

So was:

 myDate = new DateTime(myDate.Year, myDate.Month, myDate.Day); 

Auf diese Weise erstellen Sie ein neues DateTime Objekt basierend auf dem alten, mit 00:00:00 als DateTime .

Erstellen Sie eine Struktur, die nur die gewünschten Eigenschaften enthält. Dann eine Erweiterungsmethode, um diese Struktur leicht von einer Instanz von DateTime zu bekommen.

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

Verwendung

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

Verwenden Sie .Date eines DateTime-Objekts ignoriert den Zeitabschnitt.

Hier ist Code:

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

Ausgabe:

 >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 

Verwenden Sie ein wenig RegEx:

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

Erzeugt ein Datum im Format: TT / MM / JJJJ

Für die Verwendung von Datalist, Repeater .. in Aspx-Seite: < % # Eval ("YourDateString"). ToString (). Entfernen (10)%>

Dies könnte einfach so gemacht werden:

 var dateOnly = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day) 

Das DateTime des Date Teils eines DateTime Objekts wurde für mich nicht ausgeführt, da ich auf der Clientseite arbeite und die zurückgegebenen Webservice-Werte einige null . Daher versucht es, den Date-Teil eines Nullwerts abzurufen, und es wird eine Laufzeitausnahme ausgetriggers. Das folgende Beispiel zeigt, wie ich mein Problem getriggers habe:

 string dt = employer.BirthDay.ToString(); if(dt == ""){ dt = "N/A";} else dt = dt.Substring(0,10); 
  1. Rufen Sie den DateTime-Wert als Zeichenfolge in einer Zeichenfolgenvariablen ab.
  2. Überprüfen Sie, ob es null ist. Wenn null, weisen Sie eine String-Variable zu.
  3. Wenn nicht null, DateTime Sie die ersten 10 Zeichen des DateTime Zeichenfolgewerts DateTime und weisen Sie sie der Zeichenfolgenvariablen zu.

Ich teile das für zukünftige Referenz.

 DateTime dd=DateTiem.Now; string date=dd.toString("dd/MM/YYYY"); 
 static void Main(string[] args) { string dateStrings = "2014-09-01T03:00:00+00:00" ; DateTime convertedDate = DateTime.Parse(dateStrings); Console.WriteLine(" {0} ----------------- {1}", convertedDate,DateTime.Parse(convertedDate.ToString()).ToString("dd/MM/yyyy")); Console.Read(); } 

Dieser Code gibt Ihnen einen klaren Überblick darüber, Date und Time getrennt zu schreiben

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

Hoffe das hilft.