Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีจัดรูปแบบวันที่ด้วย printf() ใน Java


เมธอด printf() ใช้สำหรับพิมพ์สตริงที่จัดรูปแบบแล้ว รองรับ format characters สำหรับวันที่มากมาย

ตาราง Format Characters สำหรับวันที่

Format CharactersDescription
'B'ชื่อเดือนเต็ม (Full month name)
'b'ชื่อเดือนย่อ (Abbreviated month name)
'h'ชื่อเดือนย่อ (เหมือน b)
'A'ชื่อวันเต็ม (Full day of week name)
'a'ชื่อวันย่อ (Short day of week name)
'C'ศตวรรษ (ปี 4 หลักหาร 100)
'Y'ปี 4 หลัก
'y'ปี 2 หลัก
'j'วันของปี (3 หลัก)
'm'เดือน (2 หลัก)
'd'วันของเดือน (2 หลัก พร้อมเลข 0 นำหน้า)
'e'วันของเดือน (2 หลัก ไม่มีเลข 0 นำหน้า)

ตัวอย่าง 1: จัดรูปแบบวันที่พื้นฐาน

import java.util.Date;

public class Example {
    public static void main(String args[]) {
        Date obj = new Date();
        System.out.printf("%tD%n", obj);
        System.out.printf("Date: %td%n", obj);
        System.out.printf("Month: %tm%n", obj);
        System.out.printf("Year: %ty%n", obj);
    }
}

Output

11/10/20
Date: 10
Month: 11
Year: 20

ตัวอย่าง 2: จัดรูปแบบปี และ วันของปี

import java.util.Date;

public class Example {
    public static void main(String args[]) {
        Date obj = new Date();
        System.out.printf("%tD%n", obj);
        System.out.printf("Year: %tY%n", obj);
        System.out.printf("Day of the year: %tj%n", obj);
    }
}

Output

11/10/20
Year: 2020
Day of the year: 315

ตัวอย่าง 3: แสดงชื่อเดือนและชื่อวัน

import java.util.Date;

public class Example {
    public static void main(String args[]) {
        Date obj = new Date();
        System.out.printf("Date: %tD%n", obj);
        System.out.printf("Month (full): %tB%n", obj);
        System.out.printf("Month (abbreviation): %tb%n", obj);
        System.out.printf("Day (full): %tA%n", obj);
        System.out.printf("Day (abbreviation): %ta%n", obj);
    }
}

Output

Date: 11/10/20
Month (full): November
Month (abbreviation): Nov
Day (full): Tuesday
Day (abbreviation): Tue

หมายเหตุ

  • บทความนี้มีเนื้อหาเหมือนบทความ ID 1004093258 สำหรับการใช้งานจริง ควรใช้ DateTimeFormatter (Java 8+) แทน printf() เพื่อความยืดหยุ่นและรองรับ Locale ได้ดีกว่า
  • printf() ใช้ Date แบบเก่า (java.util.Date) ซึ่งถูก Deprecated หลายเมธอดแล้ว