1. LocalDateTimelớp học

Lớp này LocalDateTimekết hợp các khả năng của lớp LocalDateLocalTime: nó lưu trữ cả ngày và giờ. Các đối tượng của nó cũng là bất biến và các phương thức của nó tương tự như của các lớp LocalDateLocalTime.

Lấy ngày và giờ hiện tại

Mọi thứ đều như bạn mong đợi ở đây: chúng tôi sử dụng now()phương pháp. Ví dụ:

Mã số Đầu ra bảng điều khiển
LocalDateTime time = LocalDateTime.now();
System.out.println("Now = " + time);

Now = 2019-02-22T09:49:19.275039200

Khi được hiển thị trên màn hình, ngày và giờ được phân tách bằng chữ cái T.

Nhận ngày và giờ cụ thể

Không có gì đáng ngạc nhiên, mọi thứ đều tương tự với các lớp LocalDateLocalTime— chúng tôi sử dụng of()phương thức:

... = LocalDateTime.of(year, month, day, hours, minutes, seconds);

Đầu tiên, có các tham số chỉ định ngày ở các định dạng giống như trong LocalDatelớp. Sau đó, có các tham số chỉ định thời gian ở các định dạng giống như trong LocalTimelớp. Một danh sách tất cả các biến thể của of()phương pháp được đưa ra dưới đây:

phương pháp
of (int year, int month, int day, int hour, int minute)
of (int year, int month, int day, int hour, int minute, int second)
of (int year, int month, int day, int hour, int minute, int second, int nano)
of (int year, Month month, int day, int hour, int minute)
of (int year, Month month, int day, int hour, int minute, int second)
of (int year, Month month, int day, int hour, int minute, int second, int nano)
of (LocalDate date, LocalTime time)

Bạn có thể đặt ngày trực tiếp hoặc đặt gián tiếp thông qua LocalDateLocalTimecác đối tượng:

Mã số
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime current = LocalDateTime.of(date, time);
System.out.println("Now = " + current);

LocalDateTime date = LocalDateTime.of(2019, Month.MAY, 15, 12, 15, 00);
System.out.println("Now = " + date);
Đầu ra bảng điều khiển
Now = 2019-02-22T10:05:38.465675100
Now = 2019-05-15T12:15

Lớp này LocalDateTimecó các phương thức để lấy các phần tử của ngày và/hoặc thời gian. Chúng phản ánh chính xác các phương thức của các lớp LocalDateLocalTime. Chúng tôi sẽ không lặp lại chúng ở đây.



2. Instantlớp học

Những người tạo ra Java cũng không quên những cách học cũ.

API Ngày Giờ bao gồm một lớp Instant để làm việc với thời gian dành cho các quy trình xảy ra trong máy tính. Thay vì giờ, phút và giây, nó xử lý giây, mili giây và nano giây.

Lớp này có hai trường đại diện cho:

  • số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970
  • một số nano giây

Là lớp được tạo ra cho các nhà phát triển? Đúng. Đó là lý do tại sao nó tính toán thời gian theo thời gian Unix, bắt đầu từ đầu năm 1970.

Người ta thậm chí có thể nói rằng Instantlớp là một phiên bản đơn giản hóa của Datelớp, chỉ giữ lại những gì người lập trình cần.

Bạn có thể lấy một Instantđối tượng theo cách chính xác giống như một LocalTimeđối tượng:

Instant timestamp = Instant.now();

Đâu timestamplà một Instantbiến và là một lời gọi đến phương thức tĩnh của lớp.Instant.now()now()Instant

Ví dụ:

Mã số Đầu ra bảng điều khiển
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

Bạn cũng có thể tạo một đối tượng mới bằng cách sử dụng các biến thể của of()phương thức bằng cách chuyển thời gian đã trôi qua kể từ ngày 1 tháng 1 năm 1970:

ofEpochMilli(long milliseconds)
Bạn cần chuyển số mili giây
ofEpochSecond(long seconds)
Bạn cần vượt qua số giây
ofEpochSecond(long seconds, long nanos)
Bạn cần vượt qua giây và nano giây

Các phương thức có sẵn trên Instantcác đối tượng

Lớp Instant có hai phương thức trả về giá trị của các trường của nó:

long getEpochSecond()
Số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970
int getNano()
Nano giây.
long toEpochMilli()
Số mili giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970

Ngoài ra còn có các phương thức để tạo một Instantđối tượng mới dựa trên một đối tượng hiện có:

Instant plusSeconds(long)
Thêm giây vào thời gian hiện tại
Instant plusMillis(long)
Thêm mili giây
Instant plusNanos(long)
Thêm nano giây
Instant minusSeconds(long)
Trừ giây
Instant minusMillis(long)
Trừ mili giây
Instant minusNanos(long)
Trừ đi nano giây

Ví dụ:

Mã số Đầu ra bảng điều khiển
Instant timestamp = Instant.now();
System.out.println(timestamp);

long n = timestamp.toEpochMilli();
Instant time = Instant.ofEpochMilli(n);
System.out.println(time);

2019-02-22T09:01:20.535344Z



2019-02-22T09:01:20.535Z