Giới thiệu kiểu Date - 1

"Xin chào, Amigo. Tôi muốn nói với bạn về một loại thú vị có tên là Date. Loại này lưu trữ ngày và giờ, đồng thời có thể đo khoảng thời gian."

"Nghe thú vị đấy. Xin hãy tiếp tục."

"Mỗi đối tượng Date lưu trữ thời gian ở dạng khá thú vị: số mili giây kể từ ngày 1 tháng 1 năm 1970, GMT."

"Ái chà!"

"Vâng. Con số này quá lớn nên không có đủ chỗ cho nó trong một int , vì vậy nó phải được lưu trữ trong một long . Nhưng nó thực sự tiện dụng để tính toán sự khác biệt giữa hai ngày bất kỳ. Bạn chỉ cần thực hiện phép trừ để tìm ra sự khác biệt với độ chính xác đến mili giây. Nó cũng giải quyết vấn đề về dòng ngày và thời gian tiết kiệm ánh sáng ban ngày."

"Phần thú vị nhất là mỗi đối tượng được khởi tạo với thời gian hiện tại khi tạo. Để biết thời gian hiện tại, bạn chỉ cần tạo một đối tượng Ngày."

"Làm thế nào để bạn làm việc với nó?"

"Đây là một số ví dụ:"

Lấy ngày hiện tại:
public static void main(String[] args) throws Exception
{
     Date today = new Date();
     System.out.println("Current date: " + today);
}
Tính toán sự khác biệt giữa hai ngày
public static void main(String[] args) throws Exception
{
    Date currentTime = new Date();           // Get the current date and time
    Thread.sleep(3000);                      // Wait 3 seconds (3000 milliseconds)
    Date newTime = new Date();               // Get the new current time

    long msDelay = newTime.getTime() - currentTime.getTime(); // Calculate the difference
    System.out.println("Time difference is: " + msDelay + " in ms");
}
Kiểm tra xem một khoảng thời gian nhất định đã trôi qua chưa:
public static void main(String[] args) throws Exception
{
    Date startTime = new Date();

    long endTime = startTime.getTime() + 5000;  //    +5 seconds
    Date endDate = new Date(endTime);

    Thread.sleep(3000);              // Wait 3 seconds

    Date currentTime = new Date();
    if(currentTime.after(endDate))// Check whether currentTime is after endDate
    {
        System.out.println("End time!");
    }
}
Xác định bao nhiêu thời gian đã trôi qua kể từ đầu ngày:
public static void main(String[] args) throws Exception
{
    Date currentTime = new Date();
    int hours = currentTime.getHours();
    int mins = currentTime.getMinutes();
    int secs = currentTime.getSeconds();

    System.out.println("Time since midnight " + hours + ":" + mins + ":" + secs);
}
Xác định có bao nhiêu ngày đã trôi qua kể từ đầu năm:
public static void main(String[] args) throws Exception
{
    Date yearStartTime = new Date();
    yearStartTime.setHours(0);
    yearStartTime.setMinutes(0);
    yearStartTime.setSeconds(0);

    yearStartTime.setDate(1);      // First day of the month
    yearStartTime.setMonth(0);     // January (the months are indexed from 0 to 11)

    Date currentTime = new Date();
    long msTimeDifference = currentTime.getTime() - yearStartTime.getTime();
    long msDay = 24 * 60 * 60 * 1000;  // The number of milliseconds in 24 hours

    int dayCount = (int) (msTimeDifference/msDay); // The number of full days
    System.out.println("Days since the start of the year: " + dayCount);
}

" getTime()Phương thức trả về số mili giây được lưu trữ trong đối tượng Ngày."

" after()Phương thức kiểm tra xem ngày chúng ta gọi phương thức có đến sau ngày được truyền cho phương thức hay không."

"Các getHours(), getMinutes(), getSeconds()phương thức trả về số giờ, phút và giây tương ứng cho đối tượng mà chúng được gọi."

"Hơn nữa, trong ví dụ trước, bạn có thể thấy rằng bạn có thể thay đổi ngày/giờ được lưu trữ trong một đối tượng Ngày . Chúng tôi lấy ngày và giờ hiện tại, sau đó đặt lại giờ, phút và giây thành 0. Chúng tôi cũng đặt tháng Giêng làm tháng tháng và 1 là ngày trong tháng. Do đó, đối yearStartTimetượng lưu trữ ngày 1 tháng 1 của năm hiện tại và thời gian 00:00:00."

"Sau đó, chúng tôi lại nhận được ngày hiện tại ( currentTime), tính toán sự khác biệt giữa hai ngày tính bằng mili giây và lưu trữ nó trong msTimeDifference."

"Sau đó, chúng tôi chia msTimeDifferencecho số mili giây trong 24 giờ để có được số ngày đầy đủ kể từ đầu năm hiện tại cho đến ngày hôm nay."

"Wow, nó thật là tuyệt!"