項目開發中,很多時候會用到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());二、獲取網絡時間
很多時候,由于手機的不確定性,導致各個手機的時間都不盡相同,如果開發中需要獲取統一的時間來匹配一些規則的時候,比如我之前公司就是通過或去當前時間并且轉換之后來匹配網絡連接的規則,防止大批量的抓包,那么這個時候就需要一個統一的時間和后臺進行匹配,這是簡單的使用獲取系統時間就可能存在問題,用戶手機如果調成自動獲取網絡時間的話沒問題,但是如果不是呢?所以獲取網絡時間就派上了用處
URL url = null;//取得資源對象try { url = new URL("http://www.baidu.com"); URLConnection uc = url.openConnection();//生成連接對象 uc.connect(); //發出連接 ld = uc.getDate(); //取得網站日期時間 Logger.i(TAG,"ld---->>>>"+ld);} catch (Exception e) { e.printStackTrace();}以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答