Android 获取网络时间而非手机系统时间 您所在的位置:网站首页 天气app时间与手机时间不一致 Android 获取网络时间而非手机系统时间

Android 获取网络时间而非手机系统时间

#Android 获取网络时间而非手机系统时间| 来源: 网络整理| 查看: 265

项目中有时候会用到获取网络时间来进行倒计时,但是获取系统时间和手机本地的时间是同步的,如果手机时间不对,那么获取的时间也是手机本地不对的时间。

多的不说了上代码

private void getCalendarTime(){ final Calendar c = Calendar.getInstance(); c.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); String mYear = String.valueOf(c.get(Calendar.YEAR));//年 String mMonth = String.valueOf(c.get(Calendar.MONTH) + 1);//月 String mDay = String.valueOf(c.get(Calendar.DAY_OF_MONTH));//日 String mHour = String.valueOf(c.get(Calendar.HOUR_OF_DAY));//24小时格式 HOUR(12小时格式) String mMinute = String.valueOf(c.get(Calendar.MINUTE));//分 String mSecond = String.valueOf(c.get(Calendar.SECOND));//秒 tv1.setText(mYear+"-"+mMonth+"-"+mDay+" "+mHour+":"+mMinute+":"+mSecond); }

输出时间为

其中注意获取的月份必须要加1,因为Calendar.MONTH获取到时间是从0开始的,也就是0~~11月而不是1~~12

上面输出的时间为 2020-3-24-14:40:8 而不是我常见的2020-03-24 14:40:08

那么这只需要简单的判断一下就可以得到我们需要的格式:

/** * 个位数的时候前面补一个0 * @param num * @return */ public static String getStrs(int num){ String string ; if (isNum(num)){ string= String.valueOf(num); }else { string="0"+num; } return string; } /** * 判断是否为个位数 * @param num * @return */ public static boolean isNum(int num){ boolean isNum; if (num >9) { isNum=true; } else { isNum=false; } return isNum; }

最终对输入的值进行判断

String time=mYear+"-"+getStrs(mMonth)+"-"+getStrs(mDay)+" "+getStrs(mHour)+":"+getStrs(mMinute)+":"+getStrs(mSecond);

对月 、日、时、分、秒进行判断,年肯定不会为个位数,至此就得到了我们需要的 

"yyyy-MM-dd HH:mm:ss"格式的时间

例如一下输出

E/测试网络时间: 2020-03-24 14:57:18

完整的代码如下:

/* * 使用Calendar获取系统时间 */ private void getCalendarTime(){ final Calendar c = Calendar.getInstance(); c.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); int mYear = c.get(Calendar.YEAR);//年 int mMonth = c.get(Calendar.MONTH) + 1;//月 int mDay = c.get(Calendar.DAY_OF_MONTH);//日 int mHour = c.get(Calendar.HOUR_OF_DAY);//24小时格式 HOUR(12小时格式) int mMinute = c.get(Calendar.MINUTE);//分 int mSecond = c.get(Calendar.SECOND);//秒 String time=mYear+"-"+getStrs(mMonth)+"-"+getStrs(mDay)+" "+getStrs(mHour)+":"+getStrs(mMinute)+":"+getStrs(mSecond); tv1.setText(time); Log.e("测试网络时间",time); } /** * 个位数的时候前面补一个0 * @param num * @return */ public static String getStrs(int num){ String string ; if (isNum(num)){ string= String.valueOf(num); }else { string="0"+num; } return string; } /** * 判断是否为个位数 * @param num * @return */ public static boolean isNum(int num){ boolean isNum; if (num >9) { isNum=true; } else { isNum=false; } return isNum; }

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有