美文网首页
如何实现手机时间与服务器时间同步

如何实现手机时间与服务器时间同步

作者: 微小码 | 来源:发表于2016-07-06 20:23 被阅读2738次

主要通过SystemClock.elapsedRealtime()来实现
实现原理:首先获取服务器时间,并记录获取服务器时间时当时的时钟值,当要重新获取服务器时间时,只需要用当前的时钟值-获取服务器时间时当时的时钟值+之前的服务器时间=现在的服务器时间
核心代码:

   df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    // 服务器时间
    serverTime = new Date(); // 这里取本地时间,为了测试
    // 开机之后会保持一个时钟(绝对时间)
    C1 = SystemClock.elapsedRealtime();
    
    showText = (TextView)findViewById(R.id.showText);
    
    Button button = (Button)findViewById(R.id.testButton);
    button.setText("当前时间:"+df.format(serverTime));
    button.setOnClickListener(new OnClickListener() {
       @Override
       public void onClick(View v) {
        C2 = SystemClock.elapsedRealtime();
        // 当前时间=服务器时间+时间差
        Date curDate = new Date(serverTime.getTime()+(C2-C1));

        String s = df.format(curDate);
        showText.setText("最新当前时间:"+s);
       }
      });

应用场景描述:比如拍照图片上加服务器时间水印
旧的思路,每次拍照的时候获取服务器时间,这样回导致拍照很慢,因为每次请求接口耗费了大量的时间
新的思路,只获取一次服务器时间,后续的服务器时间通过时钟差来计算获得,是不是快多了呢

源码

https://github.com/andli0626/ServerTimeTest.git

参考资料

http://www.tuicool.com/articles/Inm2Uf

相关文章

  • 如何实现手机时间与服务器时间同步

    主要通过SystemClock.elapsedRealtime()来实现实现原理:首先获取服务器时间,并记录获取服...

  • 关于同步docker容器与宿主机时间的问题

    如何同步docker容器与宿主机时间 背景:公司内网服务器无法上网,本地的docker镜像默认的时间均为UTC时间...

  • Linux服务器时间同步(多台)

    服务器时间与标准时间不同步?不同服务器之间时间不同步?简单操作几下就OK 直接上货 1.在配置时间同步环境的时候要...

  • 服务器时间同步、修改docker时区

    《服务器时间同步、修改docker时区》 一、服务器时间同步 安装ntp服务 时间同步命令 修改时区 二、linu...

  • linux 集群时间同步

    集群时间同步 时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟...

  • Linux常用命令学习

    同步时间 以管理员身份执行如下命令,可以自动与网络时间同步:time.nist.gov 是一个时间服务器$ rda...

  • 第十二周

    1、配置chrony服务,实现服务器时间自动同步 2、实现cobbler+pxe自动化装机 PXE安装: 安装yu...

  • 同步服务器时间

    生产中服务器时间同步还是比较重要的,一般都不会去专门搭建NTP服务器,可以直接使用公网上的NTP服务器去同步服务器...

  • 时间同步服务器

    时间同步服务器 [toc]因搭建 ceph 集群要求时间稳定.再次回顾下两种时间服务器的部署.推荐使用chrony...

  • Linux时间同步

    服务器同步网络时间

网友评论

      本文标题:如何实现手机时间与服务器时间同步

      本文链接:https://www.haomeiwen.com/subject/wlwkjttx.html