文章原文:https://www.cnblogs.com/gu-bin/p/10022703.html
返回知识列表:
1,System.currentTimeMillis() 和 SystemClock.elapsedRealtime()的区别
System.currentTimeMillis()获取的是系统时间,是距离1970年1月1日开始计算的一个值;android.os.SystemClock.elapsedRealtime()获取从设备重启后经历的时间值。
System.currentTimeMillis()获取当前日期有意义,如当前是xxxx年xx月xx时xx分xx秒xxx毫秒,这个值在系统设置中可以更改的;
SystemClock.elapsedRealtime()计算某个时间经历了多长时间有意义,例如开机经历了多长时间,这个值是系统设置无关。
import java.util.Date;
new Date(System.currentTimeMillis() - SystemClock.elapsedRealtime());
那如上这个时间,表示的就是系统开机的时间。
2,Date() 类
Date类对象的创建:
1、创建一个当前时间的Date对象
//创建一个代表系统当前日期的Date对象
Date d = new Date();
看Date的构造函数,就知道。Date() 内部实际上是调用了System.currentTimeMillis()获取系统时间.
看第一个例子的时候,就应知道,Date() 还有一个构造函数 Date(long ), 参数是从1970 年到现在的毫秒数
2、创建一个我们指定的时间的Date对象:
使用带参数的构造方法Date(int year, int month, int day) ,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,实际需要代表的月份减去1以后的值。
//创建一个代表2014年6月12号的Date对象
Date d1 = new Date(2014-1900, 6-1, 12); (注意参数的设置)
3、正确获得一个date对象所包含的信息
如:
Date d2 = new Date(2014-1900, 6-1, 12);
//获得年份 (注意年份要加上1900,这样才是日期对象d2所代表的年份)
int year = d2.getYear() + 1900;
//获得月份 (注意月份要加1,这样才是日期对象d2所代表的月份)
int month = d2.getMonth() + 1;
//获得日期
int date = d2.getDate();
//获得小时
int hour = d2.getHours();//不设置默认为0
//获得分钟
int minute = d2.getMinutes();
//获得秒
int second = d2.getSeconds();
//获得星期 (注意:0代表星期日、1代表星期1、2代表星期2,其他的一次类推了)
int day = d2.getDay();