SystemClock
-
SystemClock.elapsedRealtime()//手機啟動后過了多長時間(毫秒值,含手機深度睡眠時間)
所謂android深度睡眠,即屏幕關(guān)閉后,一段時間不做任何操作,不連接usb,然后在一定時間后,
手機很多服務(wù)、進程都睡眠了,不再運行。 -
SystemClock.uptimeMillis()//手機啟動后過了多長時間(毫秒值,不含手機深度睡眠時間) -
SystemClock.currentThreadTimeMillis()//當(dāng)前線程運行了多少時間(毫秒值,不含thread或systemclock.sleep的值)
android.text.format.DateFormat
1.DateFormat.getBestDateTimePattern(local,skeleton) 獲取指定時區(qū)的最佳時間格式,skeleton為想要顯示的單位類型
- DateFormat.format(inFormat,date) 按指定格式獲取字符串
- DateFormat.getDateFormat(context): 獲取系統(tǒng)時間顯示格式
例子
private void logDateFormat(Date date) {
String bestDateTimePattern = DateFormat.getBestDateTimePattern(Locale.CHINA, "yyyyMMddHHmmss");
Log.i(TAG, "bestDateTimePattern: "+DateFormat.format(bestDateTimePattern,date));
Log.i(TAG, "yyyy-MM-dd: "+ DateFormat.format("yyyy-MM-dd HH:mm:ss",date));
Log.i(TAG, "yy/MM/dd "+ DateFormat.format("yy/MM/dd",date));
Log.i(TAG, "yyyy: "+ DateFormat.format("yyyy",date));
java.text.DateFormat dateFormat = DateFormat.getDateFormat(this);
Log.i(TAG, "java: "+ dateFormat.format(date));
}
顯示結(jié)果
bestDateTimePattern: 2016/02/01 13:43:13
yyyy-MM-dd: 2016-02-01 13:43:13
yy/MM/dd 16/02/01
yyyy: 2016
java: 2016-2-1
DateUtils
1.DateUtils.formatDateTime: 格式化時間,最大精度到分鐘
2.formatDateRange(Context context, long startMillis,
long endMillis, int flags:格式化兩個時間相距的字符串
3.DateUtils.formatElapsedTime(elapsedtime) 配合SystemClock使用,顯示手機使用時間
例子
private void logDateUtils(Date date){
Log.i(TAG, "FORMAT_ABBREV_ALL: "+DateUtils.formatDateTime(this,date.getTime(),DateUtils.FORMAT_ABBREV_ALL));
Log.i(TAG, "FORMAT_ABBREV_MONTH: "+DateUtils.formatDateTime(this,date.getTime(),DateUtils.FORMAT_ABBREV_MONTH));
Log.i(TAG, "FORMAT_ABBREV_RELATIVE: "+DateUtils.formatDateTime(this,date.getTime(),DateUtils.FORMAT_ABBREV_RELATIVE));
Log.i(TAG, "FORMAT_ABBREV_TIME: "+DateUtils.formatDateTime(this,date.getTime(),DateUtils.FORMAT_ABBREV_TIME));
Log.i(TAG, "FORMAT_ABBREV_WEEKDAY: "+DateUtils.formatDateTime(this,date.getTime(),DateUtils.FORMAT_ABBREV_WEEKDAY));
Log.i(TAG, "FORMAT_NO_MIDNIGHT: "+DateUtils.formatDateTime(this,date.getTime(),DateUtils.FORMAT_NO_MIDNIGHT));
Log.i(TAG, "FORMAT_NO_MONTH_DAY: "+DateUtils.formatDateTime(this,date.getTime(),DateUtils.FORMAT_NO_MONTH_DAY));
Log.i(TAG, "FORMAT_NO_NOON: "+DateUtils.formatDateTime(this,date.getTime(),DateUtils.FORMAT_NO_NOON));
Log.i(TAG, "FORMAT_NO_YEAR: "+DateUtils.formatDateTime(this,date.getTime(),DateUtils.FORMAT_NO_YEAR));
Log.i(TAG, "FORMAT_NUMERIC_DATE: "+DateUtils.formatDateTime(this,date.getTime(),DateUtils.FORMAT_NUMERIC_DATE));
Log.i(TAG, "FORMAT_SHOW_DATE: "+DateUtils.formatDateTime(this,date.getTime(),DateUtils.FORMAT_SHOW_DATE));
Log.i(TAG, "FORMAT_SHOW_TIME: "+DateUtils.formatDateTime(this,date.getTime(),DateUtils.FORMAT_SHOW_TIME));
Log.i(TAG, "FORMAT_SHOW_WEEKDAY: "+DateUtils.formatDateTime(this,date.getTime(),DateUtils.FORMAT_SHOW_WEEKDAY));
Log.i(TAG, "FORMAT_SHOW_YEAR: " + DateUtils.formatDateTime(this, date.getTime(), DateUtils.FORMAT_SHOW_YEAR));
Log.i(TAG, "FORMAT_SHOW_YEAR: " + DateUtils.formatDateTime(this, date.getTime(), DateUtils.FORMAT_SHOW_YEAR));
Log.i(TAG, "formatDateRange: " + DateUtils.formatDateRange(this, date.getTime(), date.getTime() + 3600 * 1000, DateUtils.FORMAT_SHOW_TIME));
Log.i(TAG, "elapsedRealtime: " + DateUtils.formatElapsedTime(SystemClock.elapsedRealtime()/1000));
}
結(jié)果
FORMAT_ABBREV_ALL: 2月1日
FORMAT_ABBREV_MONTH: 2月1日
FORMAT_ABBREV_RELATIVE: 2月1日
FORMAT_ABBREV_TIME: 2月1日
FORMAT_ABBREV_WEEKDAY: 2月1日
FORMAT_NO_MIDNIGHT: 2月1日
FORMAT_NO_MONTH_DAY: 二月
FORMAT_NO_NOON: 2月1日
FORMAT_NO_YEAR: 2月1日
FORMAT_NUMERIC_DATE: 2/1
FORMAT_SHOW_DATE: 2月1日
FORMAT_SHOW_TIME: 14:16
FORMAT_SHOW_WEEKDAY: 星期一
FORMAT_SHOW_YEAR: 2016年2月1日
FORMAT_SHOW_YEAR: 2016年2月1日
formatDateRange: 14:16–15:16
elapsedRealtime: 4:34:20