Khóa học lập trình Java cung cấp lớp Date có sẵn trong gói java.util , lớp này gói gọn ngày và giờ hiện tại.
Lớp Date hỗ trợ hai hàm tạo như trong bảng sau.
Bạn có thể sử dụng getTime () để lấy số mili giây đã trôi qua kể từ nửa đêm, ngày 1 tháng 1 năm 1970 cho cả hai đối tượng và sau đó so sánh hai giá trị này.
Bạn có thể sử dụng các phương thức trước (), sau () và bằng (). Bởi vì ngày 12 của tháng đến trước ngày 18, ví dụ: Ngày mới (99, 2, 12). Trước khi (Ngày mới (99, 2, 18)) trả về đúng.
Bạn có thể sử dụng phương thức so sánh (), được xác định bởi giao diện so sánh và được triển khai theo ngày.
Khóa học lập trình Java Định dạng ngày bằng SimpleDateFormat
SimpleDateFormat là một lớp cụ thể để định dạng và phân tích ngày theo cách nhạy cảm với miền địa phương. SimpleDateFormat cho phép bạn bắt đầu bằng cách chọn bất kỳ mẫu do người dùng xác định để định dạng ngày giờ.
Sẽ là một chút ngớ ngẩn nếu bạn phải cung cấp ngày nhiều lần để định dạng từng phần. Vì lý do đó, một chuỗi định dạng có thể chỉ ra chỉ số của đối số sẽ được định dạng.
Chỉ mục phải ngay lập tức theo% và nó phải được chấm dứt bằng $.
Ngoài ra, bạn có thể sử dụng <cờ. Nó chỉ ra rằng đối số tương tự như trong đặc tả định dạng trước nên được sử dụng lại.
Nhân vật chuyển đổi ngày và giờ
Có các lớp hữu ích khác liên quan đến Ngày và thời gian. Để biết thêm chi tiết, bạn có thể tham khảo tài liệu Tiêu chuẩn Khóa học lập trình Java.
Phương thức getInstance () của Lịch trả về một GregorianCalWiki được khởi tạo với ngày và giờ hiện tại trong miền địa phương và múi giờ mặc định. GregorianCalWiki định nghĩa hai trường: AD và BC. Chúng đại diện cho hai thời đại được xác định bởi lịch Gregorian.
Ngoài ra còn có một số hàm tạo cho các đối tượng GregorianCalWiki
Dưới đây là danh sách một vài phương thức hỗ trợ hữu ích được cung cấp bởi lớp GregorianCalWiki
Để có danh sách đầy đủ về hằng số có sẵn trong lớp Lịch, bạn có thể tham khảo tài liệu Khóa học lập trình Java tiêu chuẩn.
Lớp Date hỗ trợ hai hàm tạo như trong bảng sau.
Khóa học lập trình Java |
Sr.Không. | Người xây dựng & Mô tả |
---|---|
1 | Ngày( ) Hàm tạo này khởi tạo đối tượng với ngày và giờ hiện tại. |
2 | Ngày (millisec dài) Nhà xây dựng này chấp nhận một đối số bằng với số mili giây đã trôi qua kể từ nửa đêm, ngày 1 tháng 1 năm 1970. |
Sau đây là các phương thức của lớp ngày.
Sr.Không. | Phương pháp & Mô tả |
---|---|
1 | boolean sau (Ngày tháng) Trả về true nếu đối tượng Date gọi có chứa ngày muộn hơn ngày được chỉ định bởi ngày, nếu không, nó sẽ trả về false. |
2 | boolean trước (Ngày ngày) Trả về true nếu đối tượng Date gọi có chứa ngày sớm hơn ngày được chỉ định bởi ngày, nếu không, nó sẽ trả về false. |
3 | Đối tượng nhân bản () Sao y đối tượng ngày gọi. |
4 | int so sánh với (ngày ngày) So sánh giá trị của đối tượng gọi với ngày. Trả về 0 nếu các giá trị bằng nhau. Trả về giá trị âm nếu đối tượng gọi sớm hơn ngày. Trả về giá trị dương nếu đối tượng gọi muộn hơn ngày. |
5 | int so sánhTo (Object obj) Hoạt động giống hệt nhau để so sánhTo (Ngày) nếu obj thuộc lớp Ngày. Mặt khác, nó ném ClassCastException. |
6 | boolean bằng (ngày đối tượng) Trả về true nếu đối tượng Date gọi có cùng thời gian và ngày với đối tượng được chỉ định theo ngày, nếu không, nó sẽ trả về false. |
7 | getTime dài () Trả về số mili giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970. |
số 8 | int hashCode () Trả về mã băm cho đối tượng gọi. |
9 | void setTime (thời gian dài) Đặt thời gian và ngày theo chỉ định theo thời gian, biểu thị thời gian đã trôi qua tính bằng mili giây từ nửa đêm, ngày 1 tháng 1 năm 1970. |
10 | Chuỗi toString () Chuyển đổi đối tượng Date gọi thành một chuỗi và trả về kết quả. |
Lấy ngày và giờ hiện tại
Đây là một phương pháp rất dễ dàng để có được ngày và giờ hiện tại trong Khóa học lập trình Java. Bạn có thể sử dụng một đối tượng Ngày đơn giản với phương thức toString () để in ngày và giờ hiện tại như sauimport java.util.Date; public class DateDemo { public static void main(String args[]) { // Instantiate a Date object Date date = new Date(); // display time and date using toString() System.out.println(date.toString()); } }
on May 04 09:51:52 CDT 2009
So sánh ngày
Sau đây là ba cách để so sánh hai ngàyBạn có thể sử dụng getTime () để lấy số mili giây đã trôi qua kể từ nửa đêm, ngày 1 tháng 1 năm 1970 cho cả hai đối tượng và sau đó so sánh hai giá trị này.
Bạn có thể sử dụng các phương thức trước (), sau () và bằng (). Bởi vì ngày 12 của tháng đến trước ngày 18, ví dụ: Ngày mới (99, 2, 12). Trước khi (Ngày mới (99, 2, 18)) trả về đúng.
Bạn có thể sử dụng phương thức so sánh (), được xác định bởi giao diện so sánh và được triển khai theo ngày.
Khóa học lập trình Java Định dạng ngày bằng SimpleDateFormat
SimpleDateFormat là một lớp cụ thể để định dạng và phân tích ngày theo cách nhạy cảm với miền địa phương. SimpleDateFormat cho phép bạn bắt đầu bằng cách chọn bất kỳ mẫu do người dùng xác định để định dạng ngày giờ.
import java.util.*; import java.text.*; public class DateDemo { public static void main(String args[]) { Date dNow = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz"); System.out.println("Current Date: " + ft.format(dNow)); } }
Current Date: Sun 2004.07.18 at 04:14:09 PM PDT
Mã định dạng DateFormat đơn giản
Để chỉ định định dạng thời gian, sử dụng chuỗi mẫu thời gian. Trong mẫu này, tất cả các chữ cái ASCII được dành riêng dưới dạng các chữ cái mẫu, được định nghĩa như sauTính cách | Sự miêu tả | Thí dụ |
---|---|---|
G | Kỷ nguyên chỉ định | QUẢNG CÁO |
y | Năm trong bốn chữ số | 2001 |
M | Tháng trong năm | Tháng 7 hoặc 07 |
d | Ngày trong tháng | 10 |
h | Giờ trong AM / PM (1 ~ 12) | 12 |
H | Giờ trong ngày (0 ~ 23) | 22 |
m | Phút trong giờ | 30 |
S | Giây phút | 55 |
S | Một phần nghìn giây | 234 |
E | Ngày trong tuần | Thứ ba |
D | Ngày trong năm | 360 |
F | Ngày trong tuần trong tháng | 2 (thứ hai thứ tư trong tháng bảy) |
w | Tuần trong năm | 40 |
W | Tuần trong tháng | 1 |
một | Điểm đánh dấu AM / PM | PM |
k | Giờ trong ngày (1 ~ 24) | 24 |
K | Giờ trong AM / PM (0 ~ 11) | 10 |
z | Múi giờ | giờ chuẩn phương Đông |
' | Thoát cho văn bản | Dấu phân cách |
" | Trích dẫn duy nhất | ` |
Định dạng ngày bằng printf
Khóa học lập trình Java Định dạng ngày và giờ có thể được thực hiện rất dễ dàng bằng phương pháp printf . Bạn sử dụng định dạng hai chữ cái, bắt đầu bằng t và kết thúc bằng một trong các chữ cái của bảng như trong đoạn mã sau.import java.util.Date; public class DateDemo { public static void main(String args[]) { // Instantiate a Date object Date date = new Date(); // display time and date String str = String.format("Current Date/Time : %tc", date ); System.out.printf(str); } }
Current Date/Time : Sat Dec 15 16:37:57 MST 2012
Sẽ là một chút ngớ ngẩn nếu bạn phải cung cấp ngày nhiều lần để định dạng từng phần. Vì lý do đó, một chuỗi định dạng có thể chỉ ra chỉ số của đối số sẽ được định dạng.
Chỉ mục phải ngay lập tức theo% và nó phải được chấm dứt bằng $.
Due date: February 09, 2004
Ngoài ra, bạn có thể sử dụng <cờ. Nó chỉ ra rằng đối số tương tự như trong đặc tả định dạng trước nên được sử dụng lại.
Due date: February 09, 2004
Nhân vật chuyển đổi ngày và giờ
Tính cách | Sự miêu tả | Thí dụ |
---|---|---|
c | Ngày giờ hoàn thành | Thứ Hai 04 Tháng 9 09:51:51 CDT 2009 |
F | Ngày ISO 8601 | 2004 / 02-09 |
D | Ngày định dạng của Hoa Kỳ (tháng / ngày / năm) | 02/09/2004 |
T | Thời gian 24 giờ | 18:05:19 |
r | Thời gian 12 giờ | 06:05:19 chiều |
R | Thời gian 24 giờ, không có giây | 18:05 |
Y | Năm có bốn chữ số (với các số 0 đứng đầu) | 2004 |
y | Hai chữ số cuối của năm (với các số 0 đứng đầu) | 04 |
C | Hai chữ số đầu tiên của năm (với các số 0 đứng đầu) | 20 |
B | Tên đầy đủ tháng | Tháng hai |
b | Tên tháng viết tắt | Tháng hai |
m | Tháng có hai chữ số (có số 0 đứng đầu) | 02 |
d | Ngày hai chữ số (với các số 0 đứng đầu) | 03 |
e | Ngày hai chữ số (không có số 0 đứng đầu) | 9 |
Một | Tên ngày đầy đủ | Thứ hai |
một | Tên ngày viết tắt | Môn |
j | Ngày ba chữ số trong năm (với các số 0 đứng đầu) | 069 |
H | Giờ hai chữ số (với các số 0 đứng đầu), từ 00 đến 23 | 18 |
k | Giờ hai chữ số (không có số 0 đứng đầu), từ 0 đến 23 | 18 |
tôi | Giờ hai chữ số (với các số 0 đứng đầu), từ 01 đến 12 | 06 |
tôi | Giờ hai chữ số (không có số 0 đứng đầu), từ 1 đến 12 | 6 |
M | Phút hai chữ số (với các số 0 đứng đầu) | 05 |
S | Giây hai chữ số (có số 0 đứng đầu) | 19 |
L | Ba chữ số mili giây (với các số 0 đứng đầu) | 047 |
N | Chín chữ số nano giây (với các số 0 đứng đầu) | 047000000 |
P | Đánh dấu buổi sáng hoặc buổi chiều | PM |
p | Chữ thường buổi sáng hoặc buổi chiều | PM |
z | Phần bù số RFC 822 từ GMT | -0800 |
Z | Múi giờ | PST |
S | Giây kể từ 1970-01-01 00:00:00 GMT | 1078884319 |
Q | Một phần nghìn giây kể từ 1970-01-01 00:00:00 GMT | 1078884319047 |
Phân tích chuỗi thành ngày
Lớp SimpleDateFormat có một số phương thức bổ sung, đáng chú ý là parse (), cố gắng phân tích một chuỗi theo định dạng được lưu trữ trong đối tượng SimpleDateFormat đã cho.import java.util.*; import java.text.*; public class DateDemo { public static void main(String args[]) { SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); String input = args.length == 0 ? "1818-11-11" : args[0]; System.out.print(input + " Parses as "); Date t; try { t = ft.parse(input); System.out.println(t); } catch (ParseException e) { System.out.println("Unparseable using " + ft); } } }Khóa học lập trình Java Một lần chạy mẫu của chương trình trên sẽ tạo ra kết quả như sau
1818-11-11 Parses as Wed Nov 11 00:00:00 EST 1818
Ngủ một lúc
Bạn có thể ngủ trong bất kỳ khoảng thời gian nào từ một phần nghìn giây cho đến thời gian sử dụng máy tính của bạn. Ví dụ: chương trình sau sẽ ngủ trong 3 giâyimport java.util.*; public class SleepDemo { public static void main(String args[]) { try { System.out.println(new Date( ) + "\n"); Thread.sleep(5*60*10); System.out.println(new Date( ) + "\n"); } catch (Exception e) { System.out.println("Got an exception!"); } } }
Sun May 03 18:04:41 GMT 2009
Sun May 03 18:04:51 GMT 2009
Đo thời gian đã qua
Đôi khi, bạn có thể cần đo thời gian tính bằng mili giây. Vì vậy, hãy viết lại ví dụ trên một lần nữaimport java.util.*; public class DiffDemo { public static void main(String args[]) { try { long start = System.currentTimeMillis( ); System.out.println(new Date( ) + "\n"); Thread.sleep(5*60*10); System.out.println(new Date( ) + "\n"); long end = System.currentTimeMillis( ); long diff = end - start; System.out.println("Difference is : " + diff); } catch (Exception e) { System.out.println("Got an exception!"); } } }
Sun May 03 18:16:51 GMT 2009
Sun May 03 18:16:57 GMT 2009
Difference is : 5993
Lớp GregorianCalWiki
GregorianCalWiki là một triển khai cụ thể của lớp Lịch thực hiện lịch Gregorian bình thường mà bạn quen thuộc. Chúng tôi không thảo luận về lớp Lịch trong hướng dẫn này, bạn có thể tra cứu tài liệu Khóa học lập trình Java tiêu chuẩn cho việc này.Phương thức getInstance () của Lịch trả về một GregorianCalWiki được khởi tạo với ngày và giờ hiện tại trong miền địa phương và múi giờ mặc định. GregorianCalWiki định nghĩa hai trường: AD và BC. Chúng đại diện cho hai thời đại được xác định bởi lịch Gregorian.
Ngoài ra còn có một số hàm tạo cho các đối tượng GregorianCalWiki
Sr.Không. | Người xây dựng & Mô tả |
---|---|
1 | GregorianCalWiki () Xây dựng một GregorianCalWiki mặc định bằng cách sử dụng thời gian hiện tại trong múi giờ mặc định với miền địa phương mặc định. |
2 | GregorianCalWiki (int năm, int tháng, int date) Xây dựng một GregorianCalWiki với ngày đã cho được đặt trong múi giờ mặc định với miền địa phương mặc định. |
3 | GregorianCalWiki (int năm, int tháng, int date, int giờ, int phút) Xây dựng một GregorianCalWiki với ngày và giờ đã cho được đặt cho múi giờ mặc định với miền địa phương mặc định. |
4 | GregorianCalWiki (int year, int tháng, int date, int hours, int phút, int second) Xây dựng một GregorianCalWiki với ngày và giờ đã cho được đặt cho múi giờ mặc định với miền địa phương mặc định. |
5 | GregorianCalWiki (Địa điểm aLocale) Xây dựng một GregorianCalWiki dựa trên thời gian hiện tại trong múi giờ mặc định với miền địa phương đã cho. |
6 | GregorianCalWiki (múi giờ) Xây dựng một GregorianCalWiki dựa trên thời gian hiện tại trong múi giờ nhất định với miền địa phương mặc định. |
7 | GregorianCalWiki (múi giờ, địa điểm aLocale) Xây dựng một GregorianCalWiki dựa trên thời gian hiện tại trong múi giờ nhất định với miền địa phương đã cho. |
Sr.Không. | Phương pháp & Mô tả |
---|---|
1 | void add (int trường, int lượng) Thêm lượng thời gian được chỉ định (đã ký) vào trường thời gian đã cho, dựa trên quy tắc của lịch. |
2 | được bảo vệ void computeFields () Chuyển đổi UTC dưới dạng mili giây thành giá trị trường thời gian. |
3 | được bảo vệ void computeTime () Ghi đè Lịch Chuyển đổi giá trị trường thời gian thành UTC dưới dạng mili giây. |
4 | boolean bằng (Object obj) So sánh GregorianCalWiki này với một tham chiếu đối tượng. |
5 | int get (trường int) Nhận giá trị cho một trường thời gian nhất định. |
6 | int getActualMaximum (trường int) Trả về giá trị tối đa mà trường này có thể có, cho ngày hiện tại. |
7 | int getActualMinimum (trường int) Trả về giá trị tối thiểu mà trường này có thể có, cho ngày hiện tại. |
số 8 | int getGreatestMinimum (trường int) Trả về giá trị tối thiểu cao nhất cho trường đã cho nếu thay đổi. |
9 | Ngày getGregorianChange () Được ngày thay đổi Lịch Gregorian. |
10 | int getLeastMaximum (trường int) Trả về giá trị tối đa thấp nhất cho trường đã cho nếu thay đổi. |
11 | int getMaximum (trường int) Trả về giá trị tối đa cho trường đã cho. |
12 | Ngày getTime () Có được thời gian hiện tại của Lịch này. |
13 | getTimeInMillis () dài Có được thời gian hiện tại của Lịch này là một thời gian dài. |
14 | TimeZone getTimeZone () Được múi giờ. |
15 | int getMinimum (trường int) Trả về giá trị tối thiểu cho trường đã cho. |
16 | int hashCode () Ghi đè mã băm. |
17 | boolean isLeapYear (int năm) Xác định nếu năm nhất định là một năm nhuận. |
18 | void roll (int trường, boolean up) Thêm hoặc bớt (tăng / giảm) một đơn vị thời gian trên trường thời gian nhất định mà không thay đổi các trường lớn hơn. |
19 | void set (trường int, int value) Đặt trường thời gian với giá trị đã cho. |
20 | void set (int year, int tháng, int date) Đặt giá trị cho các trường năm, tháng và ngày. |
21 | void set (int year, int tháng, int date, int hours, int phút) Đặt các giá trị cho các trường năm, tháng, ngày, giờ và phút. |
22 | void set (int year, int tháng, int date, int hours, int phút, int second) Đặt các giá trị cho các trường năm, tháng, ngày, giờ, phút và giây. |
23 | void setGregorianChange (Ngày ngày) Đặt ngày thay đổi GregorianCalWiki. |
24 | void setTime (Ngày tháng) Đặt thời gian hiện tại của Lịch này với Ngày đã cho. |
25 | void setTimeInMillis (millis dài) Đặt thời gian hiện tại của Lịch này từ giá trị dài nhất định. |
26 | void setTimeZone (Giá trị TimeZone) Đặt múi giờ với giá trị múi giờ đã cho. |
27 | Chuỗi toString () Trả về một chuỗi đại diện của lịch này. |
Date: Apr 22 2009
Time: 11:25:27
The current year is not a leap year
Để có danh sách đầy đủ về hằng số có sẵn trong lớp Lịch, bạn có thể tham khảo tài liệu Khóa học lập trình Java tiêu chuẩn.
Không có nhận xét nào:
Đăng nhận xét