android设备包含两种时间:一种是自然时间,比如几分几点;另一种是设备时间,比如本次系统启动后的开机时间。
获得自然时间:
Date date = new Date(System.currentTimeMillis());
String formatData = date.toLocaleString();
第一句用于返回当前的自然时间,从1970 00:00:00 UTC算起,单位是ms;
第二句用于把这个时间转换为当前的时区,格式为“X年X月X日X时X分X秒”。
该时间实际保存于在android设备的RTC(Real Time Clock)硬件电路中,该电路一般由纽扣电池供电。
设备时间通过Android.os.SystemClock类获得,该类包含以下常用方法:
uptimeMillis(),该函数返回本次启动后所经过的时间。由于该函数底层是通过CPU时钟计数的,所以,当系统睡眠后(CPU时钟停止)值不会变化。使用CPU时钟计时的包括系统sleep(),wait()等方法。
elapsedRealtime(),该函数返回设备从启动后所经过的真实自然时间,该值由RTC和CPU时钟联合运算而成,程序在执行过程中就算用户更改了系统自然时间,该值也不会错误。
我们一般用到的当前系统上的时间,也就是你手机屏幕上显示的时间
long time = System.currentTimeMillis();
Calendar mCalendar = Calendar.getInstance();
mCalendar.setTimeInMillis(time);
int mYear = mCalendar.get(Calendar.YEAR);
int mMonth = mCalendar.get(Calendar.MONTH);(提示:android中月份是从0开始的)
int mDay = mCalendar.get(Calendar.DATE);
int mHour = mCalendar.get(Calendar.HOUR);
int mMinute = mCalendar.get(Calendar.MINUTE);
int mSecond = mCalendar.get(Calendar.SECOND);