核心代碼
Calendar cal = Calendar.getInstance();
cal.set(2013, Calendar.MAY, 7); // 月份從 0 開始:MAY=4
SimpleDateFormat sdf = new SimpleDateFormat("EEEE", Locale.ENGLISH);
String weekday = sdf.format(cal.getTime()); // "Tuesday"
完整範例:列印一週日期
Calendar cal = Calendar.getInstance();
cal.set(2013, Calendar.MAY, 5); // 從週日開始
SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd.MM.yyyy", Locale.ENGLISH);
for (int i = 0; i < 7; i++) {
Log.d("Week", sdf.format(cal.getTime()));
cal.add(Calendar.DAY_OF_MONTH, 1); // 正確增加天數
}
關鍵點
Calendar.MONTH 從 0 開始(JANUARY=0)
cal.add(Calendar.DAY_OF_MONTH, 1) 而非 DAY_OF_WEEK
- 設定
Locale.ENGLISH 確保輸出英文星期名
- Android 8+ (API 26) 建議用
java.time (ThreeTenABP):
LocalDate date = LocalDate.of(2013, 5, 7);
DayOfWeek dow = date.getDayOfWeek(); // TUESDAY
String name = dow.getDisplayName(TextStyle.FULL, Locale.ENGLISH);
格式字元對照
| 字元 | 含義 | 範例 |
E | 星期縮寫 | Tue |
EEEE | 星期全名 | Tuesday |
u | 星期數字 (1=週一) | 2 |