老是要用到时间日期的一些处理,诸如:某段程序的时间间隔,日期时间格式化... 备注之
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)); //返回两个时间值间的 相距 字符串