1. DateTimeFormatter sınıfı
Özel DateTimeFormatter
sınıf, Tarih Saat API'sinin yolunu bulur. Amacı, programcıların bir tarih ve saati tam olarak istedikleri biçime dönüştürmelerini olabildiğince kolaylaştırmaktır. Ve Java'nın yaratıcılarının başarılı olduğunu bildirmekten mutluluk duyuyoruz.
Bunu kullanmak çok kolaydır. İlk olarak, bir sınıf oluşturmanız DateTimeFormatter
ve tarih ve saati nasıl görüntüleyeceğini belirten bir kalıp geçirmeniz gerekir:
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);
Nerede dtf
bir DateTimeFormatter
değişken. sınıfın statik bir yöntemidir . Ve desen, tarih ve saati görüntülemek için kullanılacak deseni belirten bir dizedir.DateTimeFormatter.ofPattern()
DateTimeFormatter
örnekler
kod | Konsol çıkışı |
---|---|
|
|
Yukarıdaki örnekte, kalıbı temel alan ofPattern()
bir nesne oluşturmak için yöntemi kullanıyoruz. DateTimeFormatter
Ve bir sonraki satırda, bir nesneyi dizgeye format()
dönüştürmek için yöntemi kullanıyoruz. LocalDateTime
Sonucu ekranda görüyorsunuz.
Date Time API'sinden neredeyse her nesneyi yönteme geçirebilirsiniz format()
.
Statik ofPattern()
de çok basittir: bağımsız değişken olarak bir kalıp alır ve bir DateTimeFormatter
nesne döndürür. En ilginç kısım desende bulunur.
2. Biçimlendirme deseni
Bir model olarak iletilen dize, bilgi görüntülenirken bir model olarak kullanılır. MM yerine ay sayısı, dd ayın günü ve yy ise yıl sayısı ile değiştirilir. Harflerin durumu önemlidir.
Bu zaman kalıpları için tam tablo şudur:
Mektup | Anlam |
---|---|
y | Yıl |
M | Ay |
D | Gün |
H | Saat |
M | Dakika |
S | saniye |
S | saniyenin binde biri |
N | nanosaniye. |
Hatırlamak özellikle zor değil.
Ancak örnekteki kalıp neden tekrarlanan MM, dd ve yy harflerini içeriyor? İşte burası daha ilginç hale geliyor.
Genel fikir
Harf sayısı metnin uzunluğunu etkiler. Ne kadar çok harf varsa, metin o kadar uzun olacaktır.
H harfi bir kez belirtilirse, 9 saat 9 olarak görüntülenir, ancak H harfi arka arkaya iki kez belirtilirse, 9 saat 09 olarak görüntülenir.
y harfi arka arkaya 2 kez belirtilirse, yıl 2 hane kullanılarak yazılır. Arka arkaya 4 kez oluşursa, 4 hane kullanılır.
M harfi arka arkaya 2 defa belirtilirse ay sayısı yazılır. Arka arkaya 3 defa ise ayın adı (ilk 3 harfi) kullanılır. Arka arkaya 4 kez ise, ayın tam adı kullanılır.
Örnek:
kod | Konsol çıkışı |
---|---|
|
|
3. Komple model tablosu
Tam tablo oldukça büyük ve çok ilginç:
Model | desen varyasyonları | Örnek | Tanım |
---|---|---|---|
y | yy, yyyy | 19; 2019 | Yıl |
M/L | M, MM, MMM, MMMM, MMMM | 1; 01; Ocak; Ocak; J | Ay |
D | d, dd | 9; 09 | Gün |
H | s, ss | 2; 02 | Saat |
M | m, mm | 3; 03 | Dakika |
S | s, ss | 5; 05 | saniye |
S | S, SS, SS, ... | 1; 12; 123 | saniyenin binde biri |
N | N | 123456789 | nanosaniye |
G | G, GGGG, GGGGG | AD; Anno Domini; A; | dönem |
s/q | q, qq, qqq, qqqq | 3; 03; S3; 3. çeyrek | Çeyrek |
w | w | 13 | yılın haftası |
W | W | 3 | ayın haftası |
E | EEE, EEE, EEEEE | Pzt; Pazartesi; M | Haftanın günü |
e/c | e, ee, ee, eeee, eeee | 1; 01; Pzt; Pazartesi; M | Haftanın günü |
A | A | ÖĞLEDEN SONRA | AM veya PM |
H | H | 12 | 12 saatlik zaman. |
V | VV | Avrupa/Helsinki | Saat dilimi |
z | zzzzz | DOĞU AVRUPA ZAMAN DİLİMİ; Doğu Avrupa Standart Saati | Saat dilimi |
Ö | eyvallah | GMT+2; GMT+02:00 | Saat dilimi |
Bu arada, bu aslında tam bir sürüm değil. En eksiksiz sürümü burada bulabilirsiniz .
4. Ayrıştırma süresi
Sınıf DateTimeFormatter
ayrıca, yalnızca tarih ve saati belirli bir kalıba göre bir dizgeye dönüştürmekle kalmayıp, aynı zamanda ters işlemi gerçekleştirme becerisiyle de ilgi çekicidir!
Bir dizeyi ayrıştırmak, onu anlamlı belirteçlere bölme işlemidir.
İşte göründüğü gibi:
kod | Konsol çıkışı |
---|---|
|
|
İlk olarak, bir nesne yaratıyoruz DateTimeFormatter
ve ayrıştırma için kullanılan deseni ayarlıyoruz.
LocalDate.parse()
Ardından or LocalTime.parse()
or yöntemini çağırırız LocalDateTime.parse()
ve nesneyle birlikte ayrıştırılacak dizgiyi iletiriz DateTimeFormatter
; bu, iletilen metnin nasıl ayrıştırılacağını ve bunu yapmak için hangi kalıbın kullanılması gerektiğini anlar.
Başka bir örnek: bu sefer zamanı ayrıştıracağız.
kod | Konsol çıkışı |
---|---|
|
|
GO TO FULL VERSION