4. Tìm hiểu thêm một số lớp
5.4 Ngày tháng và Lịch
Date
Lớp Date cho phép xử lí thời gian độc lập với hệ thống.
constructor mặc định Date() không tham đối, khởi tạo một đối tượng ngày tháng hiện tại của hệ thống
Các Phương thứcs của lớp Date hầu như đã được thay thế bằng các Phương thức
của Calendar, DateFormat, TimeZone.
Calendar
Lớp Calendar hỗ trợ chuyển đổi thời gian ngày tháng
Lớp con GregorianCalendar hỗ trợ lịch Gregorian, phổ biến tại nhiều nước.
Lớp Calendar có 2 constructors, Một constructor không tham số, xây dựng lịch
với múi giờ và đia điểm mặc định. Một constructor cho phép ấn định múi giờ và địa điểm. Nó có nhiều hằng để thâm nhập thứ trong tuần, tháng, năm, giờ phút giây, mili
giây...
Lớp Calendar cung cấp các phương thức để so sánh, tính toán và chuyển đổi.
getInstance() tạo ra một đối tượng là Lịch địa phương - GregorianCalendar theo mặc định.
GregorianCalendar
Lớp GregorianCalendar là lớp con của Calendar hỗ trợ các phép toán chung cho
hầu hết thế giới. Nó định nghĩa các hằng B.C. và A.D. Nó có 7 constructors để tạo một đối tượng GregorianCalendar với các tham số date, time, time zone, locale.
TimeZone
Lớp múi giờ - TimeZone để thể hiện khái niệm múi giờ. Nó cho phép làm viẹc
theo giờ địa phương hay theo một múi giừo nào đó.
Lớp TimeZone có một constructor đơn giản, không tham số, tạo ra đối tượng múi
giờ địa phương.
Các phương thức cho phép thâm nhập một danh sách các múi giờ có thể, giờ địa phương, (từ giờ hệ thống) , độ lệch với giờ chuẩn, tạo ra đối tượng múi giờ ...
SimpleTimeZone
Lớp SimpleTimeZone dẫn xuất từ TimeZone để hỗ trợ đối tượng
GregorianCalendar. Nó tạo ra đối tượng SimpleTimeZone sử dụng ID của múi giờ và độ
lệch (offsets).
Chương trình dưới đây minh hoạ cách dùng
Chương trình DateApp. import java.lang.System; import java.util.Date; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.TimeZone;
public class DateApp {
public static void main(String args[]){ Date today = new Date();
GregorianCalendar cal = new GregorianCalendar(); cal.setTime(today);
System.out.println("Today: "); displayDateInfo(cal);
cal.clear();
cal.set(2000,0,1);
System.out.println("\nNew Years Day 2000: "); displayDateInfo(cal);
}
static void displayDateInfo(GregorianCalendar cal){
String days[] = {"","Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; String months[] = {"January","February","March","April","May", "June","July","August","September","October","November", "December"};
String am_pm[] = {"AM","PM"};
System.out.println("Year: "+cal.get(Calendar.YEAR)); System.out.println("Month: "+months[cal.get(Calendar.MONTH)]); System.out.println("Date: "+cal.get(Calendar.DATE)); System.out.println("Day: "+days[cal.get(Calendar.DAY_OF_WEEK)]); System.out.println("Hour: "+(cal.get(Calendar.HOUR)+12)%13); System.out.println("Minute: "+cal.get(Calendar.MINUTE)); System.out.println("Second: "+cal.get(Calendar.SECOND)); System.out.println(am_pm[cal.get(Calendar.AM_PM)]);
TimeZone tz=cal.getTimeZone();
System.out.println("Time Zone: "+tz.getID()); }
}