"Tôi nhớ rằng tôi muốn nói với bạn một chút về cách làm việc với ngày tháng."

"Bạn đã nói với tôi rằng Java có lớp Date và tôi có thể sử dụng lớp đó để làm việc với ngày tháng."

"Hmm. Chà, lớp Date đã lỗi thời được một thời gian rồi."

"Bây giờ, bạn nên sử dụng lớp Lịch, lớp này có phương thức getTime() trả về ngày hiện tại."

"Đây là một đối tượng Lịch thường được tạo ra:"

Tạo một đối tượng Lịch
Calendar cal = Calendar.getInstance();

"Khi bạn gọi phương thức này, lịch chính xác sẽ được tạo dựa trên cài đặt máy tính của bạn."

"Lịch 'chính xác'? Điều đó có nghĩa là có một số?"

"Phải. Chà, nói là 'có liên quan' thì chính xác hơn. Thực tế là Trái đất không chỉ có một mà là rất nhiều lịch. Hầu như mỗi lịch đều gắn liền với tôn giáo hoặc quốc gia nào đó."

"Năm có thể khác nhau tùy thuộc vào quốc gia bạn đang ở."

"Đây là những ví dụ về lịch phổ biến nhất."

lớp lịch tên lịch
GregorianLịch Lịch Gregorian Kitô giáo
Phật GiáoLịch Phật lịch
Nhật BảnĐế QuốcLịch Lịch Hoàng gia Nhật Bản

"Ngoài ra còn có lịch Trung Quốc, lịch Hồi giáo, v.v."

"Tôi hiểu rồi."

"Để lấy ngày hiện tại, bạn cần viết mã như sau:"

Lấy thời gian hiện tại
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();

"Lớp Lịch có nhiều phương thức cho phép bạn nhanh chóng lấy bất kỳ thông tin nào về ngày và giờ."

Mã số Bình luận
Calendar calendar = Calendar.getInstance();

int era = calendar.get(Calendar.ERA);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);

int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
kỷ nguyên 
năm 
tháng 
ngày trong tháng

ngày trong tuần (Thứ Hai, Thứ Ba, Thứ Tư, …)
giờ 
phút 
giây

"Đôi khi bạn thực sự chỉ cần lấy một phần thông tin có sẵn. Ví dụ, năm hiện tại hoặc ngày trong tuần."

"Nhưng đôi khi bạn chỉ cần hiển thị ngày ở định dạng phù hợp."

"Ví dụ, trong tệp nhật ký hoặc một nơi nào khác."

"Hoặc tạo một định dạng mà người dùng có thể tùy chỉnh. Bạn sẽ làm gì sau đó?"

"Cũng có những lớp đặc biệt cho việc này. Lớp SimpleDateFormat hoàn toàn phù hợp với nhiệm vụ mà bạn đã mô tả:"

Cách hiển thị ngày ở định dạng mong muốn
Calendar calendar = Calendar.getInstance();

DateFormat formatter = new SimpleDateFormat("MM-DD-YY");

String message = formatter.format(calendar.getTime());

"À. Tôi nhớ rồi. Bạn đã giải thích một số về SimpleDateFormat cho tôi, nhưng tôi thực sự không nhớ nhiều."

"Tất cả đều rất đơn giản. Bạn tạo một đối tượng SimpleDateFormat và chuyển cho nó mẫu ngày bạn muốn nhận. Sau đó, bạn gọi phương thức định dạng và nó cung cấp cho bạn ngày đã chuyển ở dạng mong muốn."

"Nghe thú vị đấy. Tôi muốn biết thêm chi tiết."

"Đây. Thông tin chi tiết. Dưới đây là một số chữ cái có thể được sử dụng trong mẫu ngày tháng:"

Thư Sự miêu tả
g Được thay thế bởi thời đại (AD hoặc BC)
y Thay thế theo năm
m Thay thế theo tháng
w Số tuần trong năm
W Số tuần trong tháng
D Số ngày trong năm
đ Ngày trong tháng
F Ngày trong tuần trong tháng
e Ngày trong tuần
Một AM/PM (trước hoặc sau buổi trưa)
h Giờ ở định dạng 24 giờ (0-23)
k Giờ ở định dạng 24 giờ (1-24)
k Giờ ở định dạng 12 giờ (0-11)
h Giờ ở định dạng 12 giờ (1-12)
tôi Phút
S giây
S mili giây
z Múi giờ, được định dạng như sau: Giờ chuẩn Thái Bình Dương, PST
z Múi giờ, được định dạng như sau: -0800/td>

"Tuyệt! Đó là tất cả những gì bạn cần."

"Vẫn còn một số sắc thái liên quan đến việc lặp lại những chữ cái này."

"Nếu bạn viết YY, bạn sẽ nhận được hai chữ số cuối cùng của năm. Nếu bạn viết YYYY, bạn sẽ nhận được cả bốn chữ số của năm."

"Với tháng cũng có chút phức tạp. MM là số của tháng. MMM là viết tắt ba chữ cái của tháng, tức là Jan, Feb, Mar, Apr, May, v.v. MMMM là viết tắt của tên đầy đủ của tháng ."

"Bạn cũng có thể hiển thị cả ngày trong tuần (sử dụng EEEE) hoặc chỉ hai chữ cái đầu tiên (sử dụng EE)."

"Cảm ơn, Rishi. Lớp SimpleDateFormat này thực sự hữu ích. Giờ tôi đã biết."

"Hãy tận hưởng việc sử dụng nó! Và chúc may mắn!"