Servletler - İşleme Tarihi
Servlet kullanmanın en önemli avantajlarından biri, çekirdek Java'da bulunan yöntemlerin çoğunu kullanabilmenizdir. Bu eğitim, size sağlanan Java aracılığıylaDate mevcut sınıf java.util paket, bu sınıf geçerli tarih ve saati kapsar.
Date sınıfı iki yapıcıyı destekler. İlk kurucu, nesneyi geçerli tarih ve saatle başlatır.
Date( )
Aşağıdaki kurucu, 1 Ocak 1970 gece yarısından bu yana geçen milisaniye sayısına eşit olan bir bağımsız değişkeni kabul eder.
Date(long millisec)
Bir Date nesnesine sahip olduğunuzda, tarihlerle oynamak için aşağıdaki destek yöntemlerinden herhangi birini çağırabilirsiniz -
Sr.No. | Yöntemler ve Açıklama |
---|---|
1 | boolean after(Date date) Çağrılan Date nesnesi, tarihe göre belirtilenden daha sonraki bir tarih içeriyorsa true, aksi takdirde false döndürür. |
2 | boolean before(Date date) Çağrılan Date nesnesi, tarihe göre belirtilenden daha eski bir tarih içeriyorsa true, aksi takdirde false döndürür. |
3 | Object clone( ) Çağrılan Date nesnesini çoğaltır. |
4 | int compareTo(Date date) Çağrılan nesnenin değerini tarihin değeriyle karşılaştırır. Değerler eşitse 0 döndürür. Çağrılan nesne tarihten önceyse negatif bir değer döndürür. Çağrılan nesne tarihten sonraysa pozitif bir değer döndürür. |
5 | int compareTo(Object obj) Obj, Date sınıfındaysa, ComparTo (Date) ile aynı şekilde çalışır. Aksi takdirde, bir ClassCastException oluşturur. |
6 | boolean equals(Object date) Çağrılan Date nesnesi, tarihe göre belirtilenle aynı saat ve tarihi içeriyorsa, doğru, aksi takdirde yanlış döndürür. |
7 | long getTime( ) 1 Ocak 1970'ten bu yana geçen milisaniye sayısını döndürür. |
8 | int hashCode( ) Çağrılan nesne için bir karma kod döndürür. |
9 | void setTime(long time) Saati ve tarihi, 1 Ocak 1970 gece yarısından milisaniye cinsinden geçen zamanı temsil eden, zamana göre belirtilen şekilde ayarlar. |
10 | String toString( ) Çağrılan Date nesnesini bir dizeye dönüştürür ve sonucu döndürür. |
Güncel Tarih ve Saati Alma
Java Servlet'te güncel tarih ve saati almak çok kolaydır. Geçerli tarih ve saati aşağıdaki gibi yazdırmak için toString () yöntemiyle basit bir Date nesnesi kullanabilirsiniz -
// Import required java libraries
import java.io.*;
import java.util.Date;
import javax.servlet.*;
import javax.servlet.http.*;
// Extend HttpServlet class
public class CurrentDate extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set response content type
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Display Current Date & Time";
Date date = new Date();
String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\n";
out.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n" +
"<body bgcolor = \"#f0f0f0\">\n" +
"<h1 align = \"center\">" + title + "</h1>\n" +
"<h2 align = \"center\">" + date.toString() + "</h2>\n" +
"</body>
</html>"
);
}
}
Şimdi yukarıdaki servlet'i derleyelim ve web.xml'de uygun girdiler oluşturalım ve sonra bu sunuculeti http: // localhost: 8080 / CurrentDate URL'sini kullanarak çağıralım. Bu, aşağıdaki sonucu verecektir -
Display Current Date & Time
Mon Jun 21 21:46:49 GMT+04:00 2010
Http: // localhost: 8080 / CurrentDate URL'sini yenilemeyi deneyin ve her yenilediğinizde saniyeler içinde fark göreceksiniz.
Tarih Karşılaştırması
Yukarıda bahsettiğim gibi Servlet'inizde mevcut tüm Java yöntemlerini kullanabilirsiniz. İki tarihi karşılaştırmanız gerekirse, yöntemler aşağıdadır -
Her iki nesne için 1 Ocak 1970 gece yarısından bu yana geçen milisaniye sayısını elde etmek ve ardından bu iki değeri karşılaştırmak için getTime () işlevini kullanabilirsiniz.
Yöntemleri önce (), sonra () ve eşittir () kullanabilirsiniz. Ayın 12'si 18'inden önce geldiğinden, örneğin, yeni Tarih (99, 2, 12) .before (yeni Tarih (99, 2, 18)) true değerini döndürür.
Comparable arabirim tarafından tanımlanan ve Date tarafından uygulanan CompareTo () yöntemini kullanabilirsiniz.
SimpleDateFormat kullanarak Tarih Biçimlendirme
SimpleDateFormat, tarihleri yerel duyarlı bir şekilde biçimlendirmek ve ayrıştırmak için somut bir sınıftır. SimpleDateFormat, tarih-saat biçimlendirmesi için herhangi bir kullanıcı tanımlı kalıp seçerek başlamanıza olanak tanır.
Yukarıdaki örneği aşağıdaki gibi değiştirelim -
// Import required java libraries
import java.io.*;
import java.text.*;
import java.util.Date;
import javax.servlet.*;
import javax.servlet.http.*;
// Extend HttpServlet class
public class CurrentDate extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set response content type
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Display Current Date & Time";
Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\n";
out.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n" +
"<body bgcolor = \"#f0f0f0\">\n" +
"<h1 align = \"center\">" + title + "</h1>\n" +
"<h2 align = \"center\">" + ft.format(dNow) + "</h2>\n" +
"</body>
</html>"
);
}
}
Yukarıdaki sunucu uygulamasını bir kez daha derleyin ve ardından bu sunucu uygulamasını http: // localhost: 8080 / CurrentDate URL'sini kullanarak çağırın. Bu, aşağıdaki sonucu verecektir -
Display Current Date & Time
Mon 2010.06.21 at 10:06:44 PM GMT+04:00
Basit Tarih Biçimi Biçim Kodları
Saat biçimini belirtmek için bir zaman örüntü dizisi kullanın. Bu modelde, tüm ASCII harfleri aşağıdaki gibi tanımlanan model harfleri olarak ayrılmıştır -
Karakter | Açıklama | Misal |
---|---|---|
G | Çağ belirleyici | AD |
y | Dört basamaklı yıl | 2001 |
M | Yıldaki ay | Temmuz veya 07 |
d | Aydaki gün | 10 |
h | ÖÖ / ÖS olarak saat (1 ~ 12) | 12 |
H | Gün içindeki saat (0 ~ 23) | 22 |
m | Saat cinsinden dakika | 30 |
s | Dakikada ikinci | 55 |
S | Milisaniye | 234 |
E | Hafta içi gün | Salı |
D | Yıldaki gün | 360 |
F | Ay içinde haftanın günü | 2 (Temmuz ayında ikinci Çarşamba) |
w | Yıldaki hafta | 40 |
W | Aydaki hafta | 1 |
a | AM / PM işaretçisi | ÖS |
k | Gün içindeki saat (1 ~ 24) | 24 |
K | ÖÖ / ÖS olarak saat (0 ~ 11) | 10 |
z | Saat dilimi | Doğu standart zamanı |
' | Metin için kaçış | Sınırlayıcı |
" | Tek alıntı | ' |
Tarihi değiştirmek için sürekli mevcut yöntemlerin tam listesi için standart Java belgelerine başvurabilirsiniz.