C#

2011-10-12 7 views
53

kodu 10/12/2011 12:00:00 AM içinde DateTime d = DateTime.Today; sonuç çizgisi içinde DateTime tarih bölümünü ayıklamak. Sadece tarih bölümünü nasıl alabilirim? İki tarihi karşılaştırdığım zaman bölümünü görmezden gelmem gerekiyor.C#

+0

Bugün ayrıca 00:00:00 sonuç vermelidir. –

+0

@digem: Bu gece yarısı _shown_, 12:00 olarak mı demek istiyorsun? Olabilirdi. Bugünün kültüre bağımlı bir değer getireceğini sanmıyorum. –

+0

@Henk: ingilizce kültürler) (Today.ToString bu değeri döndürür içinde;) – digEmAll

cevap

98

DateTimeDate ve Time hem saklamak için kullanılan bir VeriTürü olduğu için Yani bu iyi çalışması gerekir. Ancak, Date Bölümü'nü almak için Özellikler sağlar.

Özellik Date gelen tarihi bölümünü alabilirsiniz. Eğer, zaman bölümünü yok sayarak tarihleri ​​karşılaştırmak DateTime.Year ve DateTime.DayOfYear özelliklerinin bir faydalanmak istiyorsanız

http://msdn.microsoft.com/en-us/library/system.datetime.date.aspx

DateTime date1 = new DateTime(2008, 6, 1, 7, 47, 0); 
Console.WriteLine(date1.ToString()); 

// Get date-only portion of date, without its time. 
DateTime dateOnly = date1.Date; 
// Display date using short date string. 
Console.WriteLine(dateOnly.ToString("d")); 
// Display date using 24-hour clock. 
Console.WriteLine(dateOnly.ToString("g")); 
Console.WriteLine(dateOnly.ToString("MM/dd/yyyy HH:mm")); 
// The example displays the following output to the console: 
//  6/1/2008 7:47:00 AM 
//  6/1/2008 
//  6/1/2008 12:00 AM 
//  06/01/2008 00:00 
+0

var object = DateTime.Now; object.Date.ToString ("AA/gg/yyyy SS: dd") [burada] –

+2

(http://stackoverflow.com/a/39316624/2218697), ** ** 'String.Format' kullanarak başka bir çözüm umarım birisine yardım eder. – stom

29

zaman bileşeni "atmak" için hiçbir yolu yoktur.

DateTime.Today aynıdır: - İhtiyacınız biçim dizesi ile ToString kullanmak sadece ekrana sadece tarih bölümü istiyorsanız

DateTime d = DateTime.Now.Date; 

, basitçe bunu.

d.ToString("D"); 
+6

1: Bazen cevap sadece bir ' . 'away –

+0

@Oded. Hayır. Aynı şeyi döndürür. 10/12/2011 12:00:00 – Rauf

+0

@Rauf - Bu bölümden kurtulabilirsiniz. Ancak görüntülememeyi seçebilirsiniz. – Oded

14

datatimes sadece tarihi karşılaştırmak, Tarih özelliğini kullanın: standard format string "D" (uzun tarih biçimi belirteci) kullanılarak Örneğin

. Eğer

datetime1.Date == datetime2.Date 
+0

bu en iyi cevaptır. – Adam

+0

+1, bu 'karşılaştırma' tarihleri ​​ile ilgilidir. diğer cevaplar onları görüntülemek içindir – roo2

5

Bir biçemdizgesi

DateTime time = DateTime.Now;    
String format = "MMM ddd d HH:mm yyyy";  
Console.WriteLine(time.ToString(format)); 
11
DateTime d = DateTime.Today.Date; 
Console.WriteLine(d.ToShortDateString()); // outputs just date 

kullanabilirsiniz.

kod parçacığı

DateTime d1 = DateTime.Today; 
DateTime d2 = DateTime.Today.AddDays(3); 
if (d1.Year < d2.Year) 
    Console.WriteLine("d1 < d2"); 
else 
    if (d1.DayOfYear < d2.DayOfYear) 
     Console.WriteLine("d1 < d2");