Java 日期和時間 API:實用技巧與示例 - 輕鬆處理日期和時間

小万哥丶發表於2024-03-07

Java 使用者輸入(Scanner)

簡介

Scanner 類用於獲取使用者輸入,它位於 java.util 包中。

使用 Scanner 類

要使用 Scanner 類,請執行以下步驟:

  1. 匯入 java.util.Scanner 包。
  2. 建立一個 Scanner 物件,並將其初始化為 System.in
  3. 使用 Scanner 物件的方法讀取使用者輸入。

示例

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("請輸入您的姓名:");
        String name = scanner.nextLine();

        System.out.println("請輸入您的年齡:");
        int age = scanner.nextInt();

        System.out.println("您的姓名是:" + name);
        System.out.println("您的年齡是:" + age);
    }
}

讀取不同型別的資料

Scanner 類提供了各種方法來讀取不同型別的資料:

方法 描述
nextBoolean() 讀取布林值
nextByte() 讀取位元組值
nextDouble() 讀取雙精度浮點數
nextFloat() 讀取單精度浮點數
nextInt() 讀取整型值
nextLine() 讀取字串
nextLong() 讀取長整型值
nextShort() 讀取短整型值

示例

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("請輸入您的姓名:");
        String name = scanner.nextLine();

        System.out.println("請輸入您的年齡:");
        int age = scanner.nextInt();

        System.out.println("請輸入您的身高:");
        double height = scanner.nextDouble();

        System.out.println("您的姓名是:" + name);
        System.out.println("您的年齡是:" + age);
        System.out.println("您的身高是:" + height);
    }
}

處理錯誤輸入

如果您嘗試讀取與預期型別不同的資料,則會丟擲 InputMismatchException 異常。您可以使用 try-catch 塊來處理此異常。

示例

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        try {
            System.out.println("請輸入您的年齡:");
            int age = scanner.nextInt();

            System.out.println("您的年齡是:" + age);
        } catch (InputMismatchException e) {
            System.out.println("您輸入的年齡格式不正確。");
        }
    }
}

Scanner 類是獲取使用者輸入的便捷工具。它提供了各種方法來讀取不同型別的資料,並可以處理錯誤輸入。

Java 日期和時間

Java 日期和時間 API

Java 沒有內建的 Date 類,但我們可以匯入 java.time 包來使用日期和時間 API。該包包含許多日期和時間類,例如:

描述
LocalDate 表示日期(年、月、日(yyyy-MM-dd))
LocalTime 表示時間(小時、分鐘、秒和納秒(HH-mm-ss-ns))
LocalDateTime 表示日期和時間(yyyy-MM-dd-HH-mm-ss-ns)
DateTimeFormatter 日期時間物件的顯示和解析格式化程式

顯示當前日期

要顯示當前日期,請匯入 java.time.LocalDate 類,並使用其 now() 方法:

import java.time.LocalDate; // 匯入 LocalDate 類

public class Main {
    public static void main(String[] args) {
        LocalDate myObj = LocalDate.now(); // 建立一個日期物件
        System.out.println(myObj); // 顯示當前日期
    }
}

輸出將是:

2023-12-20

顯示當前時間

要顯示當前時間(小時、分鐘、秒和納秒),請匯入 java.time.LocalTime 類,並使用其 now() 方法:

import java.time.LocalTime; // 匯入 LocalTime 類

public class Main {
    public static void main(String[] args) {
        LocalTime myObj = LocalTime.now();
        System.out.println(myObj);
    }
}

輸出將是:

16:34:36.910624

顯示當前日期和時間

要顯示當前日期和時間,請匯入 java.time.LocalDateTime 類,並使用其 now() 方法:

import java.time.LocalDateTime; // 匯入 LocalDateTime 類

public class Main {
    public static void main(String[] args) {
        LocalDateTime myObj = LocalDateTime.now();
        System.out.println(myObj);
    }
}

輸出將是:

2023-12-20T16:34:36.910771

格式化日期和時間

上面示例中的“T”用於分隔日期和時間。您可以使用同一包中的 DateTimeFormatter 類的 ofPattern() 方法來格式化或解析日期時間物件。以下示例將從日期時間中刪除“T”和納秒:

import java.time.LocalDateTime; // 匯入 LocalDateTime 類
import java.time.format.DateTimeFormatter; // 匯入 DateTimeFormatter 類

public class Main {
    public static void main(String[] args) {
        LocalDateTime myDateObj = LocalDateTime.now();
        System.out.println("格式化前:" + myDateObj);
        DateTimeFormatter myFormatObj = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");

        String formattedDate = myDateObj.format(myFormatObj);
        System.out.println("格式化後:" + formattedDate);
    }
}

輸出將是:

格式化前: 2023-12-20T16:34:36.910287
格式化後: 20-12-2023 16:34:36

ofPattern() 方法接受各種值,您可以使用它們以不同的格式顯示日期和時間。例如:

示例
yyyy-MM-dd "1988-09-29"
dd/MM/yyyy "29/09/1988"
dd-MMM-yyyy "29-Sep-1988"
E, MMM dd yyyy "Thu, Sep 29 1988"

Java 日期和時間 API 提供了多種類和方法來處理日期和時間。您可以使用這些工具來顯示、格式化和解析日期和時間資料。

最後

為了方便其他裝置和平臺的小夥伴觀看往期文章:

微信公眾號搜尋:Let us Coding,關注後即可獲取最新文章推送

看完如果覺得有幫助,歡迎 點贊、收藏、關注

相關文章