Farklı Dil Destekli Kullanımlarda DateTime biçimi hakkında

Herkes  Yazar Herkes Yazar

23 Mart 2020 Yazılım Dilleri (132) /Asp.Net MVC (109) (50)

Paylaşmak güzeldir. Lütfen sizde paylaşın...


Farklı tarih biçimlerini ortak bir biçime biçimlendirme


      Asp.net c# projelerinde özellikle de çoklu dil destekli bir proje geliştiriyorsanız karşımıza çıkan tarih saat biçimlendirme sorununa karşı çözümler hakkında aşağıdaki açıklamaları inceleyerek uygulayabilirsiniz.

      İleri ki zamanlarda farklı dillerde de yayımlamak isteyebileceğinizi mutlaka göz önünde bulundurmalı ve tarih saat işleleri hakında aşağıdaki yöntemleri uygulamayı düşünmelisiniz. 

Dize geçerli bir DateTime olarak tanınmadı-Geçerli bir tarih biçimi değil

"String was not recognized as a valid DateTime." Sitemde benzer bir hata ile karşılaşıyor olabilirsiniz.

Söz konusu hata, Convert.ToDateTime aşağıda gösterildiği gibi yöntemle atılmış olabilir :
string dateString = @"20/05/2012";
//The following code throws
//FormatException: String was not recognized as a valid DateTime
DateTime date = Convert.ToDateTime(dateString);
Yukarıdaki kodda dateString temsili Date içinde Day/Month/Year biçimindedir.
Varsayılan olarak en-US kültür tarafından kullanılan .NET projesi Month/Day/Year biçimindedir. 
Bu nedenle
ToDateTime yöntem kullanıldığında 20 Month aralık dışında olduğu için hata atar.

1- Bu hatayı önlemek için uygun kültür aşağıdaki gibi kullanılabilir:
string dateString = @"20/05/2012";
DateTime date2 = Convert.ToDateTime(dateString,
	System.Globalization.CultureInfo.GetCultureInfo("hi-IN").DateTimeFormat);
2-Veya ParseExactyöntem, aşağıda gösterildiği gibi gerekli özel formatla kullanılabilir:
string dateString = @"20/05/2012";
DateTime date3 = DateTime.ParseExact(dateString, @"d/M/yyyy", 
	System.Globalization.CultureInfo.InvariantCulture);
Burada d/M/yyyy hem tek hem de çift haneli aylarla eşleşir, günler gibi 20/05/2012, 20/5/2012Özel biçim ile birlikte kullanılır InvariantCulture.

O Zaman TryParse, aşağıda gösterildiği gibi bir yöntem kullanılırak pars edip edemediği kontrol edilebilir.
DateTime date4;
string dateString = @"20/05/2012";
bool result = DateTime.TryParse(dateString,out date4);

Pars etme işlemi başarısız, fakat hata hata döndürmez, hata atmaz ama  false  değerini dönürür.Belirten parsing işlemi hatalıdır.(failed).


Paylaşmak güzeldir. Lütfen sizde paylaşın...



Herkesyazar Ara