Tarihleri ve saatleri biçimlendirme

Flash Player 10.1 ve üstü, Adobe AIR 2.0 ve üstü

Tarih ve saat değerlerinin gösterilme biçimi de bölgeden bölgeye büyük farklılıklar gösterir. Örneğin, burada 1962 yılının ikinci günü öğleden sonra saat 1:01’in bazı yerel ayarlarda kısa biçimde nasıl gösterildiği verilmektedir:

Yerel ayar

Tarih ve Saat Biçimi

en-US (İngilizce, ABD)

1/2/62 1:01pm

fr-FR (Fransa, Fransızca)

2/1/62 13:01

ja-JP (Japonya, Japonca)

1962/2/1 13:01

DateTimeFormatter sınıfını kullanma

DateTimeFormatter sınıfı Tarih değerlerini belli bir yerel ayarın kurallarına göre tarih ve saat dizelerine biçimlendirir.

Biçimlendirme, tarih veya saat değerleriyle değiştirilen harf dizisini içeren desen dizisini takip eder. Örneğin, “yyyy/MM” deseninde, “yyyy” karakterlerinin yerine dört basamaklı yıl gelir, ardından “/” karakteri ve iki basamaklı bir ay koyulur.

Desen dizesi setDateTimePattern() yöntemi kullanılarak açıkça ayarlanabilir. Ancak, desenin kullanıcının yerel ayarına ve işletim sistemi tercihlerine göre otomatik olarak ayarlanmasına izin vermek en iyisidir. Bu uygulama sonucun kültürel açıdan uygun olmasını garantiler.

DateTimeFormatter, tarihleri ve saatleri üç standart stilde (UZUN, ORTA ve KISA) ifade edebilir ve bir ÖZEL desen de kullanabilir. Bu stillerden biri tarih, bir ikincisi ise saat için kullanılabilir. Her stil için kullanılan geçerli desenler, işletim sistemine göre biraz farklılık gösterebilir.

DateTimeFormatter nesnesini oluşturduğunuzda stilleri belirtebilirsiniz. Stil parametreleri belirtilmemişse, varsayılan olarak DateTimeStyle.LONG’a ayarlanır. Stilleri daha sonra aşağıdaki örnekte gösterildiği gibi setDateTimeStyles() yöntemiyle değiştirebilirsiniz:

var date:Date = new Date(2009, 2, 27, 13, 1); 
var dtf:DateTimeFormatter = new DateTimeFormatter("en-US", 
    DateTimeStyle.LONG, DateTimeStyle.LONG); 
 
var longDate:String = dtf.format(date); 
trace(longDate); // March 27, 2009 1:01:00 PM 
 
dtf.setDateTimeStyles(DateTimeStyle.SHORT, DateTimeStyle.SHORT); 
var shortDate:String = dtf.format(date); 
trace(shortDate); // 3/27/09 1:01 PM

Ay ve gün adlarını yerelleştirme

Çoğu uygulama, ayların ve haftanın günlerinin adlarını takvim görüntüleri veya açılır liste halinde kullanır.

Ay adlarının yerelleştirilmiş bir listesini DateTimeFormatter.getMonthNames() yöntemini kullanarak alabilirsiniz. İşletim sistemine bağlı olarak, tam ve kısa biçimler mevcut olabilir. Ay adlarını tam uzunluğunda almak için DateTimeNameStyle.FULL değerini geçin. Daha kısa sürümlerini almak içinse DateTimeNameStyle.LONG_ABBREVIATION veya DateTimeNameStyle.SHORT_ABBREVIATION değerlerini geçin.

Bazı dillerde, bir ay adı tarih biçiminde gün değerinin yanına yerleştirildiğinde değişir (-in haline geçer). Ay adlarını tek başına kullanmayı planlıyorsanız, DateTimeNameContext.STANDALONE değerini getMonthNames() yöntemine geçirmelisiniz. Ancak ay adlarını biçimlendirilmiş tarihlerde kullanmak istiyorsanız DateTimeNameContext.FORMAT değerini geçin.

var dtf:DateTimeFormatter = new DateTimeFormatter("fr-FR"); 
var months:Vector.<String> = dtf.getMonthNames(DateTimeNameStyle.FULL, 
        DateTimeNameContext.STANDALONE); 
trace(months[0]); // janvier 
months = dtf.getMonthNames(DateTimeNameStyle.SHORT_ABBREVIATION, 
         DateTimeNameContext.STANDALONE); 
trace(months[0]); // janv.

DateTimeFormatter.getWeekdayNames() yöntemi, hafta günlerinin adlarının yerelleştirilmiş bir listesini sunar. getWeekdayNames() yöntemi, getMonthNames() yöntemiyle aynı nameStyle ve bağlam parametrelerini kabul eder.

var dtf:DateTimeFormatter = new DateTimeFormatter("fr-FR"); 
var weekdays:Vector.<String> = dtf.getWeekdayNames(DateTimeNameStyle.FULL, 
           DateTimeNameContext.STANDALONE); 
trace(weekdays[0]); // dimanche 
weekdays = dtf.getWeekdayNames(DateTimeNameStyle.LONG_ABBREVIATION, 
           DateTimeNameContext.STANDALONE); 
trace(weekdays[0]); // dim.

Bunun yanında, getFirstWeekday() yöntemi günün seçili yerel ayarda geleneksel olarak hafta başını işaret eden indeks değerini verir.