返回顶部
首页 > 资讯 > 移动开发 >android时间戳总结:System.nanoTime(),System.currentTimeMillis(),SystemClock
  • 222
分享到

android时间戳总结:System.nanoTime(),System.currentTimeMillis(),SystemClock

systemAndroid 2022-06-06 14:06:57 222人浏览 泡泡鱼
摘要

今天的主题,从头到尾就两个字:时间。 坚持看完整篇blog,一定会有收获。 开发中经常要用到时间戳,下面将会详细介绍,如下系统函数的功能和差异

今天的主题,从头到尾就两个字:时间。

坚持看完整篇blog,一定会有收获。

开发中经常要用到时间戳,下面将会详细介绍,如下系统函数的功能和差异 :

System.nanoTime() System.currentTimeMillis() SystemClock.uptimeMillis() SystemClock.elapsedRealtime() SystemClock.currentThreadTimeMillis 0、时间的单位:

秒:second

毫秒:Millisecond

微妙:Microsecond

纳秒:nanosecond

1秒 = 1000毫秒;1毫秒=1000微秒, 1微秒=1000纳秒,

注意:【纳秒的单位千万别弄错了,马上我们就会用到这个单位】

1毫秒 = 1000 000纳秒;一百万纳秒

1毫秒 = 1000 000纳秒;一百万纳秒

1毫秒 = 1000 000纳秒;一百万纳秒

一 、System.nanoTime()

单位:纳秒

Android系统开机到当前的时间

系统设置修改时钟,不影响该时间。

重启android系统后该值会重置为0。

二、System.currentTimeMillis()

单位:毫秒(milliseconds)

从1970.1.1 UTC 零点开始到当前的时间

修改系统时钟,会直接修改该时间。可以通过该值推算当前系统时钟的日期和时间。

重启手机对该时间无影响。

三、System.nanoTime()有什么用呢?

System.nanoTime:返回的时间单位是纳秒,他是毫秒的百万分之一。远比毫秒的颗粒度要低。

如下情况,使用,System.currentTimeMillis,计算不出时间差,但是System.nanoTime可以:

public class TimeStampMain {
    public static void main(String[] args) {
        long milliTimeBegin = System.currentTimeMillis();
        long nanoTimeBegin = System.nanoTime();
        for (int i = 0; i < 200; i++){
        }
        long nanoDuration = System.nanoTime() - nanoTimeBegin;
        long milliDuration = System.currentTimeMillis() - milliTimeBegin;
        System.out.println("循环100次消耗的时间:nanoDuration=" + nanoDuration + "纳秒, milliDuration=" + milliDuration + "毫秒");
    }
}

日志1

四、SystemClock

long uptimeMillis();

long elapsedRealtime();

long currentThreadTimeMillis();
SystemClock.currentThreadTimeMillis()

注意currentThreadTimeMillis()返回的是当前线程running的时间,注意是running的时间。我们通过如下例子来理解什么叫着running的时间。并且单位是毫秒。

new Thread(){
  @Override
  public void run() {
    try {
      Log.w(TG, "currentThreadTimeMillis1=" + SystemClock.currentThreadTimeMillis());//日志1
      Thread.sleep(20000);//20ms
      Log.w(TG, "currentThreadTimeMillis2=" + SystemClock.currentThreadTimeMillis());//日志2
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
}.start();

你猜,日志输出currentThreadTimeMillis1=?currentThreadTimeMillis2=?

输出日志:
日志2

五、结尾

再次回到我们的主题,时间。


大叔,有一次面试“某福报厂”,面试官问了一个问题,让我陷入沉思了很久很久很久……以下是面试官的原话:

在我们公司,有着很多狠多的学霸,假如,你加入我们之后,你会发现很多来自国内外名校,智商很高的同事。他们学习能力很强。你怎么能做到不落后甚至超越他们呢?

大叔,思考了很久很久,终于找到了适合大叔的答案:时间

程序员,面对快速迭代的技术,持续学习的能力无疑是杀手锏,短时间我们学习的速度赶不上学霸,但是持之以恒的学习,一个个技术细节慢慢啃,夜以继日的啃,不敢说能赶上大部分学霸,最起码能让研发能力领先在中上水平以上。
随着时间的力量,这个领先会越来越领先。
时间可以是把杀猪刀,时间也可以是把屠龙刀。

逝者如斯夫,我相信时间的力量,坚持的力量。

积跬步,终将至千里;积小流,必成江海。

原文连接:https://juejin.im/post/5eb00f786fb9a043340bf6a8
更多android技术blog:Https://juejin.im/collection/5eaff93ee51d45364b88a912

关键字:

时间戳; 开发技术如何与不落后学霸; 技术能力如何不落后; 程序员必备技能; currentTimeMillis; nanoTime; SystemClock;

安卓开发大叔 原创文章 34获赞 24访问量 24万+ 关注 私信 展开阅读全文
作者:安卓开发大叔


--结束END--

本文标题: android时间戳总结:System.nanoTime(),System.currentTimeMillis(),SystemClock

本文链接: https://lsjlt.com/news/29768.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • android时间戳总结:System.nanoTime(),System.currentTimeMillis(),SystemClock
    今天的主题,从头到尾就两个字:时间。 坚持看完整篇blog,一定会有收获。 开发中经常要用到时间戳,下面将会详细介绍,如下系统函数的功能和差异 ...
    99+
    2022-06-06
    system Android
  • Android编程计算函数时间戳的相关方法总结
    本文实例讲述了Android编程计算函数时间戳的相关方法。分享给大家供大家参考,具体如下:对于做性能的人来说,知道时间的花在哪了是比较重要的,可以在函数前后得到系统的时间,计算时间戳能够得到每个函数的时间。在JAVA中可以通过System....
    99+
    2023-05-31
    android 时间戳 roi
  • 总结一些php时间戳转换常用函数
    PHP中时间戳转换函数是一个非常重要的工具,因为PHP是一种非常有用的编程语言,广泛用于Web开发中。正因为如此,许多开发者都需要使用时间戳转换函数来将Unix时间戳转换为更友好的日期格式。在本文中,我们将讨论如何使用PHP中的时间戳转换函...
    99+
    2023-05-14
    php php时间戳
  • PHP时间戳函数实现时间转换和计算功能的方法总结
    PHP时间戳函数是一种非常常用和强大的功能,它可以用于时间的转换和计算。在这篇文章中,我将总结一下PHP时间戳函数的使用方法和一些相关的注意事项。PHP时间戳函数主要有两个:time() 和strtotime()。time()函数返回当前的...
    99+
    2023-11-20
    函数 时间戳 转换
  • pythontime模块时间戳与结构化时间详解
    目录time模块1. 时间戳1.1 time.time()1.2 时间戳 转 字符串2. 结构化时间2.1 本地时间2.2 格林威治时间(零时区)2.3 结构化时间 转 字符串2.4...
    99+
    2024-04-02
  • Pandas中常用的七个时间戳处理函数使用总结
    目录1、查找特定日期的某一天的名称2、执行算术计算3、使用时区信息来操作转换日期时间4、使用日期时间戳5、创建日期系列6、操作日期序列7、使用时间戳数据对数据进行切片在零售、经济和金...
    99+
    2024-04-02
  • Python time模块之时间戳与结构化时间的使用
    目录1. 时间戳1.1 time.time()1.2 时间戳 转 字符串2. 结构化时间2.1 本地时间2.2 格林威治时间(零时区)2.3 结构化时间 转 字符串2.4 字符串 转...
    99+
    2024-04-02
  • python的time模块时间戳与结构化时间如何使用
    这篇文章主要介绍了python的time模块时间戳与结构化时间如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python的time模块时间戳与结构化时间如何使用文章都会有所收获,下面我们一起来看看吧。t...
    99+
    2023-07-02
  • Python time模块之时间戳与结构化时间怎么使用
    本篇内容介绍了“Python time模块之时间戳与结构化时间怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!导入相关库im...
    99+
    2023-07-02
  • PHP获取当月起始和结束时间戳
    可以使用PHP的时间函数 strtotime() 和 date() 获取当月的起始和结束时间戳。具体的方法如下: 获取当月的起始时间戳 $start_time = strtotime(date('Y-m-01 00:00:00')); 代码...
    99+
    2023-09-01
    php 时间戳 本月起始和结束 strtotime date
  • SQL日期时间函数总结(MSSQL)
    时间类型实际上为浮点数Double类型,大小为8个字节(Byte)。时间单位:1天=1,1小时=1/24,1分钟=1/60/24,1秒=1/60/60/24 Sql Server中的日期与时间函数: sel...
    99+
    2024-04-02
  • oracle中时间、日期函数的总结
    一、常用的日期函数:DAY() --函数返回 date_expression  中的日期值 MONTH() --函数返回 date_ex...
    99+
    2024-04-02
  • ORACLE临时表空间的总结分析
    ORACLE临时表空间的总结分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。临时表空间概念临时表空间用来管理数据库排序操作以...
    99+
    2024-04-02
  • Python时间转化方法超全总结
    目录1. 时间戳2.calendar2.1模块内容2.3isleap(year)2.4leapdays(y1,y2)2.5month(year,month,w=2,l=1)2.6mo...
    99+
    2024-04-02
  • 最全总结---36种MySQL时间函数
    1,NOW():返回当前日期和时间 SELECT NOW();//这将返回当前日期和时间的值,例如:2023-03-11 15:32:45。 2,DATE():从日期时间值中提取日期部分: SELECT DATE('2023-03-...
    99+
    2023-08-18
    mysql unix 数据库
  • Python常用时间操作总结【取得当前时间、时间函数、应用等】
    本文实例讲述了Python常用时间操作。分享给大家供大家参考,具体如下: 我们先导入必须用到的一个module >>> import time 设置一个时间的格式,下面会用到 ...
    99+
    2022-06-04
    时间 函数 常用
  • Android处理时间各种方法汇总
    本文实例为大家分享了Android处理时间的各种方法,供大家参考,具体内容如下 public static String getdate() { SimpleDateFormat formatter = new SimpleDate...
    99+
    2023-05-30
    android 处理时间 roi
  • 总结Java常用的时间相关转化
    Java常用的时间相关转化 下面代码的一些变量基本解释说明 datePattern:时间对应的字符串格式 date: 时间 dateStr:字符串格式的时间 指定的几个常量: p...
    99+
    2024-04-02
  • R语言时间序列知识点总结
    时间序列对象:变量随着时间变化 时间序列的回归函数(例如ar或arima)通常以时间序列作为参数 许多绘图函数都有针对时间序列对象的特殊方法 ts函数创建时间序列对象 ts(da...
    99+
    2024-04-02
  • Python 日期和时间用法超强总结
    时间无疑是生活各个方面中最关键的因素之一,因此,记录和跟踪时间变得非常重要。在 Python 中,可以通过其内置库跟踪日期和时间。今天我们来介绍关于 Python 中的日期和时间,一起来了解如何使用time和datetime模块查找和修改日...
    99+
    2023-05-14
    Python 日期 用法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作