項目開發中,很多時候會用到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();}
以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。