SystemClock
-
SystemClock.elapsedRealtime()
//手机启动后过了多长时间(毫秒值,含手机深度睡眠时间)
所谓android深度睡眠,即屏幕关闭后,一段时间不做任何操作,不连接usb,然后在一定时间后,
手机很多服务、进程都睡眠了,不再运行。 -
SystemClock.uptimeMillis()
//手机启动后过了多长时间(毫秒值,不含手机深度睡眠时间) -
SystemClock.currentThreadTimeMillis()
//当前线程运行了多少时间(毫秒值,不含thread或systemclock.sleep的值)
android.text.format.DateFormat
1.DateFormat.getBestDateTimePattern(local,skeleton) 获取指定时区的最佳时间格式,skeleton为想要显示的单位类型
- DateFormat.format(inFormat,date) 按指定格式获取字符串
- DateFormat.getDateFormat(context): 获取系统时间显示格式
例子
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));
}
显示结果
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));
}
结果
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