Bu makalemizde DateTime türündeki değeri DateTime.ToString(), Console.WriteLine(), string.Format() metodlarıyla nasıl formatlayabileceğimizi ve .Net’in Tarihsaat’le alakalı bazı sınıflarındaki hazır özelliklerle formatlamayı göreceğiz.
C# Tarihsaat Formatlama Ve Hazır Bazı Tarihsaat Formatlama Özelliklerini Kullanma
Bu örneğimizde DateTime türünde bir tarihi 3 farklı bilinen yöntemle nasıl formatlanacağı görmüş olacağız formatlamayı isterseniz DateTime.Tostring(Format), string.Format(Format, Datatime), Console.WriteLine(Format, Datetime) şeklinde 3 yöntemle formatlayabilirsiniz.
Tarih Formatlama
Alttaki kodlarda ben Console.WriteLine metodunun Format özelliğini kullandım siz isterseniz üsttede belirttiğim gibi DateTimeToString(), string.Format() metodlarıylada formatlama işlemini gerçekleştirebilirsiniz.
[C#]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | //Belirli bir zaman oluşturuyoruz 2009-04-09 08:31:45.123 DateTime dt = new DateTime(2009, 04, 09, 08, 05, 07, 123); // "9 09 2009 2009" yıl Console.WriteLine("{0:y yy yyy yyyy}", dt); // "4 04 Nis Nisan" ay Console.WriteLine("{0:M MM MMM MMMM}", dt); // "9 09 Per Perşembe" gün Console.WriteLine("{0:d dd ddd dddd}", dt); // "8 08 8 08" saat 12/24 Console.WriteLine("{0:h hh H HH}", dt); // "5 05" dakika Console.WriteLine("{0:m mm}", dt); // "7 07" saniye Console.WriteLine("{0:s ss}", dt); // "1 12 123 1230" milisaniye Console.WriteLine("{0:f ff fff ffff}", dt); // "1 12 123 123" milisaniye sıfırsız Console.WriteLine("{0:F FF FFF FFFF}", dt); // "P PM" Ö.Ö. or Ö.S. Console.WriteLine("{0:t tt}", dt); // "+3 +03 +03:00" zaman dilimi Console.WriteLine("{0:z zz zzz}", dt); |
Ayrıca tarih ayracı olarak /
(slaş) ve zaman ayracı olarak :
(iki nokta) kullanabilirsiniz. Tanımlı olarak varsayılan ayraçları tekrar yazmamak için DateTimeFormatInfo.DateSeparator ve DateTimeFormatInfo.TimeSeparator özelliklerini kullanabilirsiniz.
[C#]
1 2 3 4 5 6 | //Belirli bir zaman oluşturuyoruz 2009-03-09 16:05:07.123 DateTime dt = new DateTime(2009, 03, 09, 16, 05, 07, 123); //Tarih ayracı Alman kültüründe "." işaretidir (bu yüzden "/" işareti "." işareti olarak değiştirilmeli) Console.WriteLine("{0:d/M/yyyy HH:mm:ss}", dt); // "9/3/2008 16:05:07" - İngiltere(en-US) Console.WriteLine("{0:d/M/yyyy HH:mm:ss}", dt); // "9.3.2008 16:05:07" - Almanya(de-DE) |
Şimdi bazı tarih saat formatlama örnekleri yapalım.
[C#]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | //Belirli bir zaman oluşturuyoruz 2009-03-09 08:31:45.123 DateTime dt = new DateTime(2009, 03, 09, 08, 05, 07, 123); // ay/gün sayıları sıfırlı/sıfırsız // "3/9/2008" Console.WriteLine("M/d/yyyy: {0:M/d/yyyy}", dt); // "03/09/2008" Console.WriteLine(":MM/dd/yyyy: {0:MM/dd/yyyy}", dt); // gün/ay adları // "Paz, Mar 9, 2008" Console.WriteLine("ddd, MMM d, yyyy: {0:ddd, MMM d, yyyy}", dt); // "Pazar, Mart 9, 2008" Console.WriteLine("dddd, MMMM d, yyyy:{0:dddd, MMMM d, yyyy}", dt); // iki/dört haneli // "03/09/08" Console.WriteLine("MM/dd/yy: {0:MM/dd/yy}", dt); // "03/09/2008" Console.WriteLine("MM/dd/yyyy: {0:MM/dd/yyyy}", dt); |
Sonuç
1 2 3 4 5 6 7 8 | M/d/yyyy: 3/9/2008 :MM/dd/yyyy: 03/09/2008 ddd, MMM d, yyyy: Paz, Mar 9, 2008 dddd, MMMM d, yyyy:Pazar, Mart 9, 2008 MM/dd/yy: 03/09/08 MM/dd/yyyy: 03/09/2008 Devam etmek için herhangi bir tuşa basınız . . . _ |
Standart Tarihsaat formatları
DateTimeFormatInfo sınıfı altında tanımlı olan kültürler ve desenler yardımıyla standart formatları kullanabilirsiniz. Mesela ShortTimePattern deseni ile en-US kültürü için h:mm tt
veya de-DE kültürü içinde HH:mm
formatını elde etmiş olursunuz.
Alttaki tabloda gösterilen DateTimeFormatInfo sınfı altında en-US kültürü için yer alan bazı dessenlere ulaşabilirsiniz. İlk sütunda belirtilen karakterler ile ilk başta belirttiğimiz string.Format(), DateTime.ToString(), Console.Writeline() metdolarında format kısmına parametre olarak geçilerek en kısa yoldan desenleri elde etmiş olursunuz.
Karakter | DateTimeFormatInfo özelliği | Desen değeri (en-US kültürü için) |
---|---|---|
t | ShortTimePattern | h:mm tt |
d | ShortDatePattern | M/d/yyyy |
T | LongTimePattern | h:mm:ss tt |
D | LongDatePattern | dddd, MMMM dd, yyyy |
f | (D ve t ‘nin birleşimi) | dddd, MMMM dd, yyyy h:mm tt |
F | FullDateTimePattern | dddd, MMMM dd, yyyy h:mm:ss tt |
g | ( d ve t ‘nin birleşimi) | M/d/yyyy h:mm tt |
G | (d ve T ‘nin birleşimi) | M/d/yyyy h:mm:ss tt |
m , M | MonthDayPattern | MMMM dd |
y , Y | YearMonthPattern | MMMM, yyyy |
r , R | RFC1123Pattern | ddd, dd MMM yyyy HH':'mm':'ss 'GMT' (*) |
s | SortableDateTimePattern | yyyy'-'MM'-'dd'T'HH':'mm':'ss (*) |
u | UniversalSortableDateTimePattern | yyyy'-'MM'-'dd HH':'mm':'ss'Z' (*) |
(*) = kültüre göre değişebilir |
Şimdi ise Standart formatları Console.WriteLine metoduyla kullanıp sonuçları görelim
[C#]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | //Belirli bir zaman oluşturuyoruz 2008-09-03 04:05:07.123 DateTime dt = new DateTime(2008, 09, 03, 04, 05, 07, 123); // "4:05 PM" ShortTime Console.WriteLine("ShortTime: {0:t}", dt); // "3/9/2008" ShortDate Console.WriteLine("ShortDate: {0:d}", dt); // "4:05:07 PM" LongTime Console.WriteLine("LongTime: {0:T}", dt); // "Pazar, Mart 09, 2008" LongDate Console.WriteLine("LongDate: {0:D}", dt); // "Pazar, Mart 09, 2008 4:05 PM" LongDate+ShortTime Console.WriteLine("LongDate+ShortTime: {0:f}", dt); // "Pazar, Mart 09, 2008 4:05:07 PM" FullDateTime Console.WriteLine("FullDateTime: {0:F}", dt); // "3/9/2008 4:05 PM" ShortDate+ShortTime Console.WriteLine("ShortDate+ShortTime: {0:g}", dt); // "3/9/2008 4:05:07 PM" ShortDate+LongTime Console.WriteLine("ShortDate+LongTime: {0:G}", dt); // "Mart 09" MonthDay Console.WriteLine("MonthDay: {0:m}", dt); // "Mart, 2008" YearMonth Console.WriteLine("YearMonth: {0:y}", dt); // "Paz, 09 Mar 2008 16:05:07 GMT" RFC1123 Console.WriteLine("RFC1123: {0:r}", dt); // "2008-03-09T16:05:07" SortableDateTime Console.WriteLine("SortableDateTime: {0:s}", dt); // "2008-03-09 16:05:07Z" UniversalSortableDateTime Console.WriteLine("UniversalSortableDateTime: {0:u}", dt); |
Sonuç
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ShortTime: 04:05 ShortDate: 03/09/2008 LongTime: 04:05:07 LongDate: 03 Eylül 2008 Çarşamba LongDate+ShortTime: 03 Eylül 2008 Çarşamba 04:05 FullDateTime: 03 Eylül 2008 Çarşamba 04:05:07 ShortDate+ShortTime: 03/09/2008 04:05 ShortDate+LongTime: 03/09/2008 04:05:07 MonthDay: 03 Eylül YearMonth: Eylül 2008 RFC1123: Wed, 03 Sep 2008 04:05:07 GMT SortableDateTime: 2008-09-03T04:05:07 UniversalSortableDateTime: 2008-09-03 04:05:07Z Devam etmek için herhangi bir tuşa basınız . . . _ |