当前位置: 首页 > 编程笔记 >

Android获取系统时间以及网络时间

韦正业
2023-03-14
本文向大家介绍Android获取系统时间以及网络时间,包括了Android获取系统时间以及网络时间的使用技巧和注意事项,需要的朋友参考一下

项目开发中,很多时候会用到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();
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍C++设置系统时间及系统时间网络更新的方法,包括了C++设置系统时间及系统时间网络更新的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C++设置系统时间及系统时间网络更新的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C++程序设计有所帮助。

  • 本文向大家介绍Android编程获取网络时间实例分析,包括了Android编程获取网络时间实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程获取网络时间的方法。分享给大家供大家参考,具体如下: 在网上看到的最常见的方式有: 原理:通过访问http://www.bjtime.cn网站来获取 这里还为大家提供另外一种方式:通过网络或者GPS的方式。 代码如下: 更多关于

  • 本文向大家介绍VC++ 获取系统时间的方法汇总,包括了VC++ 获取系统时间的方法汇总的使用技巧和注意事项,需要的朋友参考一下 1.使用CTime类(获取系统当前时间,精确到秒) a,从CTimet中提取年月日时分秒 b,计算两段时间的差值,可以使用CTimeSpan类,具体使用方法如下: c,获得当前日期和时间,并可以转化为CString 2.使用GetLocalTime:Windows API

  • 本文向大家介绍cmd下获取当前系统时间的bat,包括了cmd下获取当前系统时间的bat的使用技巧和注意事项,需要的朋友参考一下 如何获取日期呢? 格式: %date% 注:cmd中测试需要用echo %date%,bat中直接使用即可 结果: 2020/03/13 周五 如何获取时间呢? 格式: %time% 注:cmd中测试需要用echo %time%,bat中直接使用即可 结果: 20:50:

  • 问题内容: 我正在尝试获取Android应用程序的基本时间。我使用http://hi- android.info/src/android/net/SntpClient.java.html 作为NTP客户端,并使用以下代码来实现NTP(=来自SntpClient.java的示例代码): 我尝试了以下列表中的其他服务器:http : //mindprod.com/jgloss/timesources.

  • 提示 视频 PPT 下载 背景介绍 NTP 网络时间协议(Network Time Protocol),是用来同步网络中各个计算机时间的协议。 本教程介绍了如何开启 NTP 软件包(一个运行在 RT_Thread 上的 NTP 客户端),并且当连接上网络后,如何利用这个软件包,获取当前的 UTC 时间,并更新至 RTC(实时时钟)中。 获取示例代码 打开 Env 工具输入 menuconfig 按