Android - 获取系统时间和网络时间
转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72886021
有些时候我们的应用中只能使用网络时间,而不能使用系统的时间,这是为了避免用户关闭了使用网络时间的功能后所产生的误差。
直接上代码。
1.清单文件中网络添加权限。
<!-- 访问Internet资源 -->
<uses-permission android:name="android.permission.INTERNET" />
2.布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.mythmayor.gettime.MainActivity"><TextView
android:id="@+id/tv_nettime"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:text="Hello World!"android:textSize="22sp" /><Button
android:id="@+id/btn_nettime"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="获取当前网络时间"android:textSize="20sp" /><Button
android:id="@+id/btn_localtime"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="获取当前系统时间"android:textSize="20sp" />
</LinearLayout>
3.MainActivity.class主界面中的逻辑
package com.mythmayor.gettime;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;import java.net.URL;
import java.net.URLConnection;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;public class MainActivity extends Activity implements View.OnClickListener {private TextView tvNetTime;private Button btnNetTime;private Button btnLocalTime;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/** 初始化控件 */initView();/** 处理用户输入 */handleUserInput();}private void initView() {tvNetTime = (TextView) findViewById(R.id.tv_nettime);btnNetTime = (Button) findViewById(R.id.btn_nettime);btnLocalTime = (Button) findViewById(R.id.btn_localtime);}private void handleUserInput() {btnNetTime.setOnClickListener(this);btnLocalTime.setOnClickListener(this);}private void getNetTime() {URL url = null;//取得资源对象try {url = new URL("http://www.baidu.com");//url = new URL("http://www.ntsc.ac.cn");//中国科学院国家授时中心//url = new URL("http://www.bjtime.cn");URLConnection uc = url.openConnection();//生成连接对象uc.connect(); //发出连接long ld = uc.getDate(); //取得网站日期时间DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(ld);final String format = formatter.format(calendar.getTime());runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(MainActivity.this, "当前网络时间为: \n" + format, Toast.LENGTH_SHORT).show();tvNetTime.setText("当前网络时间为: \n" + format);}});} catch (Exception e) {e.printStackTrace();}}private void getLocalTime() {URL url = null;//取得资源对象try {DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(System.currentTimeMillis());String format = formatter.format(calendar.getTime());Toast.makeText(this, "当前系统时间为: \n" + format, Toast.LENGTH_SHORT).show();tvNetTime.setText("当前系统时间为: \n" + format);} catch (Exception e) {e.printStackTrace();}}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_nettime://获取网络时间//请求网络资源是耗时操作。放到子线程中进行new Thread(new Runnable() {@Overridepublic void run() {getNetTime();}}).start();break;case R.id.btn_localtime://获取系统时间getLocalTime();break;default:break;}}
}
最后附上源码下载地址
点击此处进入源码下载界面
Android - 获取系统时间和网络时间相关推荐
- Java 获取系统时间和网络时间(网址)
Java项目开发时间获取分为:系统时间 和 网络时间 . 一般Java开发中时间获取基本上使用系统当前时间,但是像'社交通信','购物平台'等就需要获取网络时间. import java.net.UR ...
- android 获取系统当前时间
android 获取系统当前时间 来源 1 2 3 完事 来源 @听着music睡 ---- 关于安卓开始实现最简单地获取系统时间 @Android学院 ---- Android获取当前系统日期和时间 ...
- Java 获取本地时间与网络时间
Java获取的时间分为本地时间和网络时间,一般情况下开发中获取的都是本地时间,但是有些情况也需要我们去获取网络时间,以校验时间的准确性. 下面我会分别介绍获取本地时间和网络时间的方法: 获取本地时间 ...
- Linux 系统时间与网络时间不一致 时间同步
Linux 系统时间与网络时间不一致 时间同步 //查看时间date Tue Feb 25 20:15:18 CST 2020 //修改时间 date -s "20200225 20:16: ...
- 关于本地时间和网络时间校验
在我们写代码的时候经常会遇到对于本地时间和网络时间校验的处理 关于时间呢 我们分为国际时间和本地时间(比如我手机修改了本地时间) 这里以 JS为例: let localTime=new Date(); ...
- centos7.4同步系统时间和网络时间
1.查看系统时间,命令date 2.如果系统时区不是CST,需要先更改时区 # timedatectl list-timezones # 列出所有时区 # timedatectl set-local- ...
- android 获取系统的壁纸
android 获取系统的壁纸 获取当前系统的壁纸: WallpaperManager wallpaperManager = WallpaperManager.getInstance(context) ...
- android获取网络时区_Android获取系统时间以及网络时间
项目开发中,很多时候会用到android的时间,罗列一下获取的时间的方式,和大家共同学习进步 一.获取系统时间 1.通过Calendar类来获取系统当前的时间 Calendar calendar = ...
- android自动获取系统时间,Android获取系统时间的多种方法
Android中获取系统时间有多种方法,可分为Java中Calendar类获取,java.util.date类实现,还有android中Time实现. 现总结如下: 方法一: void getTime ...
最新文章
- 并查集c++代码_[Leetcode 每日精选](本周主题-并查集) 547. 朋友圈
- vue element ui 滚动条
- python使用界面-如何使用python图形化界面wxPython
- 【转】独家教程:用PHP编写Android应用程序
- jzoj6191-[NOI2019模拟2019.5.31]Exchange【线段树】
- 微信网页开发配置步骤
- 参考平面及其高度_柱面及其方程
- maven开发web项目的福音,runJettyRun插件使用
- es 安装 ik 分词器
- MySQL innodb存储引擎的数据存储结构
- 13个常用的Word快捷键,一看就会,你值得拥有!
- [BZOJ1597]土地购买
- [堆入门off-by-null]asis2016_b00ks
- lane和path的区别_path和way的区别是什么?哪个含有路线的意思?
- 企业进行风险控制的重要意义
- Whole Word Masking (wwm)
- 微信小程序 界面禁止下拉 左右滑动_微信 iOS 版更新,带来了这些新功能
- Openstack 虚拟机云盘扩容
- Python带你了解数据结构【二】
- 细说;(function ($, undefined){ })(jQuery); 的使用