Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách sử dụng định dạng với printf() đúng cách trong Java

Phương thức printf() được dùng để in một chuỗi đã định dạng. Nó chấp nhận một chuỗi đại diện cho định dạng (format string) và một mảng các đối tượng đại diện cho các phần tử sẽ xuất hiện trong chuỗi kết quả. Nếu số lượng đối số nhiều hơn số ký tự định dạng, các đối tượng thừa sẽ bị bỏ qua.

Bảng sau liệt kê các ký tự định dạng để định dạng thời gian bằng phương thức printf() của Java cùng với mô tả:

Ký tự định dạng Mô tả
'H'Đối số tương ứng được định dạng là Giờ trong ngày (00-24).
'I'Đối số tương ứng được định dạng là giờ trong ngày (01-12).
'k'Đối số tương ứng được định dạng là giờ trong ngày (0-24).
'l'Đối số tương ứng được định dạng là giờ trong ngày (1-12).
'M'Đối số tương ứng được định dạng là phút của giờ (00-59).
'S'Đối số tương ứng được định dạng là giây của phút (00-60).
'L'Đối số tương ứng được định dạng là mili-giây (000-999).
'N'Đối số tương ứng được định dạng là nano-giây (000000000-999999999).
'p'Đối số tương ứng được định dạng là pm hoặc am.
'z'Đối số tương ứng được định dạng là múi giờ.
'Z'Đối số tương ứng được định dạng là chuỗi biểu diễn múi giờ.
's'Đối số tương ứng được định dạng là giây từ epoch.
'Q'Đối số tương ứng được định dạng là mili-giây từ epoch.

Ví dụ 1: Định dạng cơ bản

import java.util.Date;

public class Example {
    public static void main(String args[]) {
        Date obj = new Date();
        System.out.printf("%tT%n", obj);
        System.out.printf("Giờ: %tH%n", obj);
        System.out.printf("Phút: %tM%n", obj);
        System.out.printf("Giây: %tS%n", obj);
    }
}

Kết quả

15:50:28
Giờ: 15
Phút: 50
Giây: 28

Ví dụ 2: In giờ 12h và 24h

import java.util.Date;

public class Example {
    public static void main(String args[]) {
        Date obj = new Date();
        System.out.printf("%tT%n", obj);
        System.out.printf("Giờ 12h: %tI:%tM %tp %n", obj, obj, obj);
        System.out.printf("Giờ 24h: %tH: giờ %tM: phút %tS: giây%n", obj, obj, obj);
    }
}

Kết quả

11:38:08
Giờ 12h: 11:38 am
Giờ 24h: 11: giờ 38: phút 08: giây

Nếu bạn quan sát ví dụ trên, chúng ta đang dùng cùng một đối tượng date để in nhiều giá trị. Chúng ta có thể tránh nhiều đối số bằng cách sử dụng tham chiếu chỉ số 1$ như sau:

Ví dụ 3: Sử dụng tham chiếu chỉ số

import java.util.Date;

public class Example {
    public static void main(String args[]) {
        Date obj = new Date();
        System.out.printf("%tT%n", obj);
        System.out.printf("Giờ 12h: %tI:%1$tM %1$tp %n", obj);
        System.out.printf("Giờ 24h: %1$tH: giờ %1$tM: phút %1$tS: giây%n", obj);
    }
}

Kết quả

11:47:13
Giờ 12h: 11:47 am
Giờ 24h: 11: giờ 47: phút 13: giây