在项目开发中,很多时候会用到android的时间,罗列一下获取的时间的方式,和大家共同学习进步
一、获取系统时间
1.通过Calendar类来获取系统当前的时间
Calendar calendar = Calendar.getInstance(); long unixTime = calendar.getTimeInMillis();//这是时间戳 Logger.i(TAG,"calendar--->>>"+"当前时间为:" + calendar.get(Calendar.YEAR) + "年 " + calendar.get(Calendar.MONTH) + "月 " + calendar.get(Calendar.DAY_OF_MONTH) + "日 " + calendar.get(Calendar.HOUR_OF_DAY) + "时 " + calendar.get(Calendar.MINUTE) + "分 " + calendar.get(Calendar.SECOND) + "秒");打印结果如下:
calendar--->>>当前时间为:2016年 6月 13日 14时 38分 58秒
2.通过Time来获取,android的文档中说使用Time比Calendar对CPU的性能损耗更小,我却不推荐使用Time,因为Time使用必须在24小时制的系统中,如果用户手机就设成12小时制的,这时就有误差
Time times = new Time("GMT+8"); /*对于已经设定为GMT时间标准的dateFormat来说,一切需要他转换的字符串日期都是GMT标准时间,转换后返回的Date由于默认 *遵守系统默认时区,所以转换给Date的日期需要+8(例如北京标准时区),也就是时区与标准不同导致的时差。*/ times.setToNow(); int year = times.year; int month = times.month; int day = times.monthDay; int minute = times.minute; int hour = times.hour; int sec = times.second; Logger.i(TAG,"当前时间为:" + year + "年 " + month + "月 " + day + "日 " + hour + "时 " + minute + "分 " + sec + "秒");打印结果:当前时间为:2016年 6月 13日 6时 38分 58秒
注意:这时的时间和上面使用时间是同一时间,不过时间我都调成是12小时制的
当然,还有其他的获取方式,不过结果基本都一样
import java.text.SimpleDateFormat;
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss");
Date curDate = new Date(System.currentTimeMillis());
String str = formatter.format(curDate);
还有
DateFormat df = new SimpleDateFormat("HH:mm:ss");
df.format(new Date());
<