Java Tarih ve Saat
Öncelikle aşağıdakilerden oluşan parametreleri anlayalım: Tarih.
Öncelikle şunları içerecektir:
- The yıl (2 veya 4 haneli olarak)
- The ay (2 haneli, ayın ilk 3 harfi veya ayın tam kelimesi).
- The tarih (ayın gerçek tarihi olacaktır).
- The gün (belirtilen tarihteki gün – Pazar, Pazartesi, Salı vb. gibi)
Bilgisayar sistemleriyle ilgili olarak, bir tarihle ilişkilendirilebilecek oldukça fazla parametre vardır. Bunları bu konunun sonraki kısımlarında göreceğiz.
Tarihi Görüntüle Java
Şimdi nasıl olduğunu görelim Java Bize Tarih verin. Öncelikle güncel tarihin nasıl alınacağını göreceğiz.
Java java.util paketi altında bir Date sınıfı sağlar. Paket, tarihle oynamak için çeşitli yöntemler sunar.
Date nesnesini, Date sınıfının yapıcısını aşağıdaki şekilde çağırarak kullanabilirsiniz:
import java.util.Date; class Date_Ex1 { public static void main(String args[]) { // Instantiate a Date object by invoking its constructor Date objDate = new Date(); // Display the Date & Time using toString() System.out.println(objDate.toString()); } }
Çıktı:
Wed Nov 29 06:36:22 UTC 2017
Yukarıdaki örnekte tarih varsayılan formatta gösterilmektedir. Eğer tarih ve saati başka bir formatta göstermek istiyorsak öncelikle Tarih Formatını anlayın.
SimpleDateFormat: Tarihleri Ayrıştırma ve Biçimlendirme
Hepiniz anaokulunuzda alfabeleri öğrenmiş olmalısınız….
Şimdi tarih formatının ABC'sini öğrenelim.
mektup | Tarih veya Saat Bileşeni | Örnekler |
---|---|---|
G | Çağ belirleyici | AD |
y | Yıl | 2018 |
M | Yıl içindeki ay | Temmuz veya Temmuz veya 07 |
w | Yıl içindeki hafta | 27 |
W | Aydaki hafta | 2 |
D | Yıl içindeki gün | 189 |
d | Aydaki gün | 10 |
F | Aydaki haftanın günü | 2 |
E | Haftadaki gün adı | Salı veya Salı |
u | Haftanın gün sayısı (1 = Monday, …, 7 = Pazar) | 1 |
a | Am/pm işaretçisi | PM |
H | Gün içindeki saat (0-23) | 0 |
k | Gün içindeki saat (1-24) | 24 |
K | Öğleden sonra/öğleden sonra saat (0-11) | 0 |
h | Öğleden sonra/öğleden sonra saat (1-12) | 12 |
m | Saat cinsinden dakika | 30 |
s | Dakikada ikinci | 55 |
S | Milisaniye | 978 |
z | Saat dilimi | Pasifik Standart Saati; PASİFİK ZAMAN DİLİMİ; GMT-08:00 |
Z | Saat dilimi | -0800 |
X | Saat dilimi | -08 veya -0800 veya -08:00 |
Endişelenmeyin, bunların hepsini hatırlamanıza gerek yok, belirli bir tarihi biçimlendirmeniz gerektiğinde bunlara başvurabilirsiniz.
SimpleDateFormat nasıl kullanılır?
Java Tarihleri gereksinimlerinize göre biçimlendirmenize ve ayrıştırmanıza olanak tanıyan SimpleDateFormat adlı bir sınıf sağlar.
Formatı belirtmek için yukarıdaki karakterleri kullanabilirsiniz.
Örneğin:
1) Tarih formatı gerekli: 2012.10.23 20:20:45 PST
Belirlenen uygun tarih formatı şu şekilde olacaktır: yyyy.AA.gg SS:dd:ss zzz
2) Tarih formatı gerekli:09:30:00 AM 23-May-2012
Belirlenen uygun tarih formatı şu şekilde olacaktır:ss:dd:ss ve gg-MMM-yyyy
Bahşiş: Harflerin büyük harf kullanımına dikkat edin. M'yi m ile karıştırırsanız istenmeyen sonuçlar elde edersiniz!
Bunu bir kod örneğiyle öğrenelim.
import java.text.SimpleDateFormat; import java.util.Date; class TestDates_Format { public static void main(String args[]) { Date objDate = new Date(); // Current System Date and time is assigned to objDate System.out.println(objDate); String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is Specified SimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format object System.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date } }
Çıktı:
Wed Nov 29 06:31:41 UTC 2017 06:31:41 AM 29-Nov-2017
Tarihleri Karşılaştır Örneği
Tarihleri karşılaştırmanın en kullanışlı yöntemi – CompareTo() yöntemini kullanmaktır.
Aşağıdaki kod parçacığına bir göz atalım-
import java.text.SimpleDateFormat; import java.text.ParseException; import java.util.Date; class TestDates_Compare { public static void main(String args[]) throws ParseException { SimpleDateFormat objSDF = new SimpleDateFormat("dd-mm-yyyy"); Date dt_1 = objSDF.parse("20-08-1981"); Date dt_2 = objSDF.parse("12-10-2012"); System.out.println("Date1 : " + objSDF.format(dt_1)); System.out.println("Date2 : " + objSDF.format(dt_2)); if (dt_1.compareTo(dt_2) > 0) { System.out.println("Date 1 occurs after Date 2"); } // compareTo method returns the value greater than 0 if this Date is after the Date argument. else if (dt_1.compareTo(dt_2) < 0) { System.out.println("Date 1 occurs before Date 2"); } // compareTo method returns the value less than 0 if this Date is before the Date argument; else if (dt_1.compareTo(dt_2) == 0) { System.out.println("Both are same dates"); } // compareTo method returns the value 0 if the argument Date is equal to the second Date; else { System.out.println("You seem to be a time traveller !!"); } } }
Çıktı:
Date1 : 20-08-1981 Date2 : 12-10-2012 Date 1 occurs before Date 2