標籤:android systemclock dateutils dateformat
老是要用到時間日期的一些處理,諸如:某段程式的時間間隔,日期時間格式化... 備忘之
java中常用的 時間 日期 class:
java.util.Date
java.util.Calendar
java.text.DateFormat
java.text.SimpleDateFormat
還有個擷取系統時間的方法 System.currentTimeMillis();
android中的:
android.os.SystemClock
android.text.format.DateFormat
android.text.format.DateUtils
android.os.SystemClock
SystemClock.elapsedRealtime(); //手機啟動後過了多長時間(毫秒值,含手機深度睡眠時間)
所謂android深度睡眠,即螢幕關閉後,一段時間不做任何操作,不串連usb,然後在一定時間後,
手機很多服務、進程都睡眠了,不再運行。
SystemClock.uptimeMillis(); //手機啟動後過了多長時間(毫秒值,不含手機深度睡眠時間)
SystemClock.currentThreadTimeMillis(); //當前線程運行了多少時間(毫秒值,不含thread或systemclock.sleep的值)
android.text.format.DateFormat
DateFormat.format("yyyy-MM-dd HH:mm:ss", System.currentTimeMillis());
DateFormat.format("yy/MM/dd", Calendar.getInstance());
DateFormat.format("yyyy", new Date(2048,12,01));
直接根據格式,格式時間 (關於格式,類中有定義)
android.text.format.DateUtils
DateUtils.formatDateTime(getApplicationContext(), //格式化時間,最多顯示到分鐘。最後參數設定顯示的格式
System.currentTimeMillis(),
DateUtils.FORMAT_24HOUR|DateUtils.FORMAT_SHOW_DATE|DateUtils.FORMAT_SHOW_TIME
|DateUtils.FORMAT_SHOW_YEAR|DateUtils.LENGTH_LONG|DateUtils.FORMAT_ABBREV_MONTH);
DateUtils.getRelativeTimeSpanString(System.currentTimeMillis()+60*4000));
//返回相對於目前時間的最大區間表示的字串:幾(分鐘,小時,天,周,月,年)前/後
DateUtils.getRelativeTimeSpanString(context, long timeMillis);
//返回相對於目前時間的,參數時間字串:在同一天顯示時分;在不同一天,顯示月日;在不同一年,顯示年月日
DateUtils.formatDateRange(getApplicationContext(), System.currentTimeMillis(), System.currentTimeMillis() + 60 * 60 * 3000,
DateUtils.FORMAT_SHOW_TIME)); //返回兩個時間值間的 相距 字串
Android 時間、日期處理 DateUtils、SystemClock、DateFormat