Android获取时间的方法有获取网络时间或者使用系统时间,两者我感觉各有优点各有缺点。

话不多说,直接上代码,用的话拿就好!!!

通过网络获取时间,这是我写的一个工具类,在子线程直接调用就可以,参考一下:

public static Date getNetTime(){        String webUrl = "http://www.ntsc.ac.cn";//中国科学院国家授时中心        try {            URL url = new URL(webUrl);            URLConnection uc = url.openConnection();            uc.setReadTimeout(5000);            uc.setConnectTimeout(5000);            uc.connect();            long correctTime = uc.getDate();            Date date = new Date(correctTime);            return date;        } catch (Exception e) {            return new Date();        }    }
获取本地系统时间代码:
long time = System.currentTimeMillis();Date date = new Date(time);SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 E HH时mm分ss秒");main_date.setText(format.format(date));

全部代码:

package com.djp.test.test2;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.widget.TextView;import android.widget.Toast;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.text.SimpleDateFormat;import java.util.Date;/** * 一般耗时操作都不允许放在主线程里直接操作,如网络操作等, * 一般需要开一个子线程去访问网络,然后通过handler去更新界面。 * 显示例如2019年02月22日  周五  14时56分08秒 *///温度  多云转晴  南风3-4级public class TwoActivity extends AppCompatActivity {    private  TextView textView;    private Handler handler = new Handler(){        //此方法在主线程中使用,用于刷新UI        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            switch (msg.what){                case 1:                    /*long time = System.currentTimeMillis();                    Date date = new Date(time);                    SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 E HH时mm分ss秒");                    main_date.setText(format.format(date));*/                  // textView.setText(new SimpleDateFormat("yyyy年MM月dd日 E HH时mm分ss秒").format(new Date(System.currentTimeMillis())));//获取系统时间                    textView.setText(new SimpleDateFormat("yyyy年MM月dd日 E HH时mm分ss秒").format(msg.obj));//获取网络时间                    break;            }        }    };    /**     * 获取当前时间     * @return     */    public static Date getNetTime(){        //设置了超时时长为5秒,若获取网络时间在5秒内无法获取,则返回本机时间。        String webUrl = "http://www.ntsc.ac.cn";//中国科学院国家授时中心        try {            URL url = new URL(webUrl);            URLConnection uc = url.openConnection();//生成连接对象            uc.setReadTimeout(5000);            uc.setConnectTimeout(5000);            uc.connect();//发出连接            long correctTime = uc.getDate();//取得网站日期时间            Date date = new Date(correctTime);            return date;        } catch (Exception e) {            return new Date();        }    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_two);        textView = findViewById(R.id.textview1);        new TimeThread().start();//启动线程    }    public class TimeThread extends Thread {        @Override        public void run() {            super.run();            do {                try {                    Thread.sleep(1000);                    Message msg = new Message();                    msg.what = 1;                    //调用获取时间                    msg.obj= getNetTime();                    handler.sendMessage(msg);                } catch (InterruptedException e) {                    e.printStackTrace();                    e.printStackTrace();                }            } while (true);        }    }}

 

更多相关文章

  1. fragment editText 焦点问题
  2. 如何获取Android系统时间是24小时制还是12小时制
  3. Android(安卓)网络连接:HttpUtils 的GET、POST与注解
  4. Android(安卓)使用PLDroidPlayer播放网络视频 根据视频角度自动
  5. 【5年Android从零复盘系列之六】Android自定义View(1):基础
  6. 调用Android原生裁剪方式裁剪图片并保存
  7. android 网络框架性能优化分析
  8. 关于android双卡手机sim卡信息采集适配的心得
  9. Android相机、相册获取图片,解决相机拍照图片被压缩模糊的情况

随机推荐

  1. android 共享元素
  2. Android:BroadcastRecevicer广播类型汇总
  3. Android中SQlite和文件存储比较
  4. Android AsyncTask Essentials
  5. AndroidStudio Gradle 批量渠道打包
  6. Android——new Canvas(Bitmap)中对canva
  7. Android对话框自定义标题
  8. js调Android与IOS方法
  9. Android调用摄像头和相册
  10. Android adb 常用命令