首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

J2ME 時間處理完全指南:System.currentTimeMillis、Date、Calendar 三類互轉與實務操作

     編輯:J2ME

時間的兩種表達

  1. 長整數毫秒值:自 GMT 1970-01-01 00:00 起的毫秒數,適合計算時間差。long t = System.currentTimeMillis();
  2. 物件導向:java.util.Date、java.util.Calendar,適合提取年月日、格式化顯示。

三大核心類

類別取得當前時間主要用途
SystemSystem.currentTimeMillis()高效時間戳、效能測量、簡單差值計算
Datenew Date() 或 new Date(millis)輕量時間物件、toString() 直接顯示、與毫秒值互轉
CalendarCalendar.getInstance()完整日期運算:取年/月/日/時/分/秒/星期、加減日期、格式化

互轉操作範例

// 1. System → Date
Date date = new Date(System.currentTimeMillis());

// 2. Date → Calendar
Calendar cal = Calendar.getInstance();
cal.setTime(date);

// 3. Calendar → Date → millis
Date d = cal.getTime();
long millis = d.getTime(); // 同 cal.getTimeInMillis() (CLDC 1.1+)

// 4. 直接建立特定時間 Calendar
Calendar cal2 = Calendar.getInstance();
cal2.set(2024, Calendar.DECEMBER, 25, 12, 0, 0); // 月份 0-based!

Calendar 關鍵操作

  • 取欄位:cal.get(Calendar.YEAR)、MONTH、DATE、HOUR_OF_DAY、MINUTE、SECOND、DAY_OF_WEEK (1=Sunday)。
  • 月份陷阱:Calendar.JANUARY = 0 ... DECEMBER = 11,輸入/顯示時需 ±1。
  • 日期加減:cal.add(Calendar.DATE, 7) (一週後)、cal.add(Calendar.MONTH, -1) (一個月前)。
  • 比較:cal1.before(cal2)、after()、equals()。

最佳實踐

  1. 單純計算間隔用 System.currentTimeMillis() 最輕量。
  2. 需顯示/解析年月日用 Calendar,注意月份 0-based。
  3. CLDC 1.0 無 Calendar.getTimeInMillis(),轉 Date 再取 getTime()。
  4. 持久化儲存建議存毫秒長整數 (RMS 節省空間),顯示時再轉物件。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved