Merhaba arkadaslar,

Bildiginiz üzere her ülkenin kendine özgü tarih formati olabilir. Örnegin; Amerika’da tarih 
Ay/Gün/Yil seklinde gösterilirken Türkiye’de Gün.Ay.Yil seklinde gösterilebilir. Bu nedenle projelerimizde bu tür tarih farkliliklari büyük problem olusturabilir. DateTime.UtcNow; seklinde kullanilan kodlar tarih formatindaki bu sorunu çözmede yeterli olmayabilir. Bu durumla özellikle sunucunun Türkiye disinda farkli bir ülkede olmasi nedeniyle sikça karsilasilmaktadir.

Eger siz de bu sekilde bir sorun yasiyorsaniz, tarih formatinin farkli görünmesinin sebebi büyük ihtimalle uygulamanizin 
sunucunun varsayilan kültür degerinde görüntülenmesi olabilir.

Bütün Asp.net uygulama sayfalarinda tarih formatinin Türkiye’dekine uygun görüntülenmesi için öncelikle 
web.config ayar dosyasi içerisindeki globalization bölümünde culture ve uiCulture özelliklerinin eklenmesi gerekmektedir.

Web.config ayar dosyanizin <system.web> bölümü içerisine su satiri ekleyin.

   <globalization culture="tr-TR" fileEncoding="windows-1254" uiCulture="tr"/>

Ancak bu kod tek basina yeterli gelmeyecektir. Code-Behind tarafinda yazacaginiz mini bir kodla sunucu tarafindaki tarihi Türkiye’deki yerel tarihe çevirmeniz gerekecektir. Bunun için asagidaki kodu kullanabilirsiniz;

// (Petroti.com) Tarih Ayarla:
DateTime utcTime = DateTime.UtcNow;
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Turkey Standard Time");
DateTime localTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, tzi); // convert from utc to local
lblTarih.Text = Convert.ToString(localTime.ToString().Substring(0, 10));
// (Petroti.com) Tarih Ayarla:
Ben bir label kullandim ve yerel formattaki tarihi ilk 10 karakteri içerecek sekilde (ör: 13.01.2018) label’a yazdirdim. Siz dilerseniz 10 yerine 19 yazarak (ör: 13.01.2018 16:18:07) tarih formatinda degisiklik yapabilirsiniz.

Umarim faydasi olmustur.

Hosçakalin.