tarih formatı tanımlayıcılar lokalize

oy
15

Bir tarih biçimi tanımlayıcı lokalize etmenin en iyi yolu nedir?

aa / gg / yyyy biçiminde bilir kullanmayan bir kültürden herkes gibi, bu biçimde tarihleri ​​girmek zorunda kalmak can sıkıcı. .NET framework bazı çok iyi yerelleştirme desteği sağlar, böylece kullanıcıların kültürüne göre tarihleri ​​ayrıştırmak için önemsiz, ama genellikle (özellikle de değiştirilebilir olduğu yy ve yyyy birbirinden ayırt etmek gerekli formata olarak da yararlı bir ipucu görüntülemek istediğiniz en kültürler).

Ne (örn gg / M / yyy çünkü durumunda değişim ve bir ve iki harf arasında geçiş kafa karıştırıcı olduğunu) çoğu kullanıcı için anlamlı bir şekilde bunu yapmanın en iyi yoludur.

Oluştur 03/08/2008 saat 18:30
kaynak kullanıcı
Diğer dillerde...                            


7 cevaplar

oy
6

Sadece ISO-8601 kullanın . Uluslararası bir standart.

Date and time (current at page generation) expressed according to ISO 8601:
Date:                           2014-07-05
Combined date and time in UTC:  2014-07-05T04:00:25+00:00
                                2014-07-05T04:00:25Z
Week:                           2014-W27
Date with week number:          2014-W27-6
Ordinal date:                   2014-186
Cevap 03/08/2008 saat 19:18
kaynak kullanıcı

oy
4

Ben 'yanlış' OP gerçekten benim GG / AA / YYYY eden yetiştirme kavanozumuzu tarihleri ile anlaşmak zorunda ve birlikte çalıştığım son derece kolay, ISO 8601 tarih ve saatleri bulun. Standart doğru var ve bir kez için engtech yerelleştirme gerektirmez bariz cevabı vardır.

Çünkü dünyanın çoğunluğu için ne kadar bir boğaz başparmak çoğunun bir hata olarak yığın taşması üzerine doğum günü giriş bildirme formu için gidiyordu.

Cevap 04/08/2008 saat 19:50
kaynak kullanıcı

oy
2

İşte benim şimdiki yöntemdir. Baska öneri?

Regex singleMToDoubleRegex = new Regex("(?<!m)m(?!m)");
Regex singleDToDoubleRegex = new Regex("(?<!d)d(?!d)");
CultureInfo currentCulture = CultureInfo.CurrentUICulture;

// If the culture is netural there is no date pattern to use, so use the default.
if (currentCulture.IsNeutralCulture)
{
    currentCulture = CultureInfo.InvariantCulture;
}

// Massage the format into a more general user friendly form.
string shortDatePattern = CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern.ToLower();
shortDatePattern = singleMToDoubleRegex.Replace(shortDatePattern, "mm");
shortDatePattern = singleDToDoubleRegex.Replace(shortDatePattern, "dd");
Cevap 03/08/2008 saat 18:31
kaynak kullanıcı

oy
1

Kısa bir biçim uygundur ve imla hataları önlemek yardımcı olur. Olarak uygulanabilir Yerelleştirin ancak beklenen biçimini göstermek için emin olun (kullanıcı kör bırakmayın). Bir şekilde bir tarih seçici kontrolünü sağlayın opsiyonel alanı doldurmadan için yardımcısı.

Uzun formda ekstra, on-the-fly ayrıştırma ve tarih göstergesi olarak da yardımcı olabilir.

Cevap 04/08/2008 saat 20:13
kaynak kullanıcı

oy
1

uluslararası standartlara sorun hemen hemen hiç kimse onları kullanır. Ben nerede can deneyin, ama bu yüzden ISO-8601 kullanmak her zaman bilinçli bir süreç buna alışkınım demektir gerçek hayatta, içinde yyyy hemen hemen her yerde / gg / aa kullanmak zorundayım. Hatta ISO-8601 kullanmaya kalkmayın insanların çoğunluğu için daha da kötü. yapabileceğiniz Eğer uluslararası hale yapabiliyorsa, ben bu büyük bir avantaj olduğunu düşünüyorum.

Cevap 04/08/2008 saat 09:14
kaynak kullanıcı

oy
1

Nasıl kullanıcının kültüründe bugünün tarihi bir çıktısını takiben biçimi (aa / gg / yyyy veya gg / aa / yyyy) verme konusunda. MSDN ilgili bir makale var kişinin kültürü için bir DateTime biçimlendirme , bu sayede yararlı olabilir Cultureınfo nesnesini kullanarak. Bu biçimde temsil geçerli tarih ile birlikte (çoğu insan aşina) biçiminde bir arada onlar tarihini girmelidir nasıl kişiye bir ipucu yeterli olmalı. (Ayrıca hala çözemiyorum olanlar için bir takvim denetimi ekleyin).

Cevap 03/08/2008 saat 18:37
kaynak kullanıcı

oy
0

En iyi seçenek : yerine standart bir tarih seçiciyi kullanmak için tavsiye ederim.

Alternatif ": 4 Mart 2009 girişiniz": Her zaman düzenleme denetimi değişikliklerin içeriği (ayrı bir kontrolde?) Onu ve ekranı ayrıştırmak tarihten (yani uzun biçimi: Giriş "03/04/09" ekran )

Cevap 19/09/2008 saat 18:02
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more