เมธอด printf() ใช้พิมพ์สตริงที่จัดรูปแบบแล้ว รับ format string และอาร์เรย์ของอ็อบเจกต์ หากอาร์กิวเมนต์มากกว่าตัวแทนใน format string ตัวเกินจะถูกละเว้น
Format Characters สำหรับเวลา (Time)
| ตัวอักษร | คำอธิบาย | ตัวอย่าง |
|---|---|---|
%tH | ชั่วโมงของวัน (00-24) | 14 |
%tI | ชั่วโมงของวัน (01-12) | 02 |
%tk | ชั่วโมงของวัน (0-24) | 14 |
%tl | ชั่วโมงของวัน (1-12) | 2 |
%tM | นาทีของชั่วโมง (00-59) | 30 |
%tS | วินาทีของนาที (00-60) | 45 |
%tL | มิลลิวินาที (000-999) | 123 |
%tN | นาโนวินาที (000000000-999999999) | 123456789 |
%tp | AM/PM (ตัวเล็ก) | pm |
%tz | Time zone offset | +0700 |
%tZ | ชื่อ Time zone | ICT |
%ts | วินาทีจาก epoch | 1705321845 |
%tQ | มิลลิวินาทีจาก epoch | 1705321845123 |
%tT | เวลาแบบเต็ม (HH:MM:SS) | 14:30:45 |
ตัวอย่างการจัดรูปแบบเวลา
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("ชั่วโมง: %tH%n", obj); // ชั่วโมง 24 ชม.
System.out.printf("นาที: %tM%n", obj); // นาที
System.out.printf("วินาที: %tS%n", obj); // วินาที
}
}
ผลลัพธ์
15:50:28 ชั่วโมง: 15 นาที: 50 วินาที: 28
ตัวอย่าง: แสดงเวลา 12 และ 24 ชั่วโมง
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("เวลา 12 ชม.: %tI:%tM %tp %n", obj, obj, obj);
System.out.printf("เวลา 24 ชม.: %tH ชม. %tM นาที %tS วินาที%n", obj, obj, obj);
}
}
ผลลัพธ์
11:38:08 เวลา 12 ชม.: 11:38 am เวลา 24 ชม.: 11 ชม. 38 นาที 08 วินาที
เทคนิค Index Reference (1$) - ลดการส่งอาร์กิวเมนต์ซ้ำ
ใช้ 1$ เพื่ออ้างอิงอาร์กิวเมนต์ตัวแรก ซ้ำได้หลายครั้ง
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("เวลา 12 ชม.: %tI:%1$tM %1$tp %n", obj);
System.out.printf("เวลา 24 ชม.: %1$tH ชม. %1$tM นาที %1$tS วินาที%n", obj);
}
}
ผลลัพธ์
11:47:13 เวลา 12 ชม.: 11:47 am เวลา 24 ชม.: 11 ชม. 47 นาที 13 วินาที
สรุป
- ใช้
%tนำหน้าตัวอักษร format สำหรับวันที่/เวลา - ใช้
n$(เช่น 1$, 2$) อ้างอิงอาร์กิวเมนต์ที่ n %tTคือ shortcut สำหรับ%tH:%tM:%tS- printf() คืนค่า PrintStream สามารถ chaining ได้