本文实例为大家分享了Android使用时间戳计算时间差的具体代码,供大家参考,具体内容如下

因当前项目需要计算时间差,进行数据处理,所以在Csdn上找了一下,之后修修补补是可以用的,建议大家如果用到项目中的话,可能需要把老的时间戳或者时间format存储在文件或者sp中,之后用于判断,然后进行自己的逻辑处理。

Effect :

Log执行:

注:这个可以自己简单封装下,比较简单。

MainActivity :

package com.bakheet.effect.time;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.TextView;

import android.widget.Toast;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class MainActivity extends AppCompatActivity {

private SimpleDateFormat format;

public String oldtime ;

public String newtime;

private TextView mContent;

private TextView mCount;

private TextView mBtnNow;

private TextView mBtn;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

mBtn = (TextView) findViewById(R.id.btn);

mBtnNow = (TextView) findViewById(R.id.btn_now);

mCount = (TextView) findViewById(R.id.count);

mContent = (TextView) findViewById(R.id.content);

//Csdn内一篇博主的博文

mBtn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Toast.makeText(MainActivity.this,"Csdn博友事件触发",Toast.LENGTH_SHORT).show();

try {

Date d1 = format.parse("2012-11-05 12:00:00");//后的时间

Date d2 = format.parse("2012-11-04 11:10:00"); //前的时间

Long diff = d1.getTime() - d2.getTime(); //两时间差,精确到毫秒

Long day = diff / (1000 * 60 * 60 * 24); //以天数为单位取整

Long hour=(diff/(60*60*1000)-day*24); //以小时为单位取整

Long min=((diff/(60*1000))-day*24*60-hour*60); //以分钟为单位取整

Long second=(diff/1000-day*24*60*60-hour*60*60-min*60);//秒

Log.e("tag","day =" +day);

Log.e("tag","hour =" +hour);

Log.e("tag","min =" +min);

Log.e("tag","second =" +second);

mContent.setText("day = "+day+",hour = "+hour+",min = "+min+",second = "+second);

} catch (Exception e) {

e.printStackTrace();

}

}

});

//获取当前的时间戳和时间转译 - 这里同时用存储老的时间

mBtnNow.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Toast.makeText(MainActivity.this,"获取当前时间",Toast.LENGTH_SHORT).show();

long timeMillis = System.currentTimeMillis();

Log.e("tag timeMillis =",""+timeMillis);

//将时间戳转为日期格式

String time = stampToDate(timeMillis);

Log.e("tag time = ",time);

oldtime=time;

Log.e("tag newtime = ",oldtime);

try {

//将日期格式转回为时间戳的格式

String what = dateToStamp(time);

Log.e("tag what = ",what);

} catch (ParseException e) {

e.printStackTrace();

}

}

});

//This is my code - - 主要作用与计算时间差 (会用到之前我们的记录的时间,所以使用的时候,无比先执行上面的逻辑)

mCount.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

//思维方式,使用最新的时间减去之前我们的老时间进行运算

Toast.makeText(MainActivity.this,"新老时间触发",Toast.LENGTH_SHORT).show();

long timeMillis = System.currentTimeMillis();

Log.e("tag timeMillis =",""+timeMillis);

String time = stampToDate(timeMillis);

Log.e("tag time = ",time);

newtime=time;

Log.e("tag newtime = ",newtime);

try {

//严格来讲,在使用中这里需要判断的,尤其是null的判断,这里我们使用的了 try catch

Date d1 = format.parse(newtime); //当前时间

Date d2 = format.parse(oldtime); //之前记录的时间

Long diff = d1.getTime() - d2.getTime(); //两时间差,精确到毫秒

//以天数为单位取整

Long day = diff / (1000 * 60 * 60 * 24);

//以小时为单位取整

Long hour=(diff/(60*60*1000)-day*24);

//以分钟为单位取整

Long min=((diff/(60*1000))-day*24*60-hour*60);

//以秒为单位

Long second=(diff/1000-day*24*60*60-hour*60*60-min*60);

Log.e("tag","day =" +day);

Log.e("tag","hour =" +hour);

Log.e("tag","min =" +min);

Log.e("tag","second =" +second);

mContent.setText("day = "+day+",hour = "+hour+",min = "+min+",second = "+second);

} catch (Exception e) {

//建议抛出总异常

e.printStackTrace();

}

}

});

}

/**

* 将时间转换为时间戳

*/

public String dateToStamp(String time) throws ParseException {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date = simpleDateFormat.parse(time);

long ts = date.getTime();

return String.valueOf(ts);

}

/**

* 将时间戳转换为时间

*/

public String stampToDate(long timeMillis){

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date = new Date(timeMillis);

return simpleDateFormat.format(date);

}

}

MainActivity Xml :

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/activity_main"

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.bakheet.effect.time.MainActivity">

android:layout_marginTop="10dp"

android:layout_width="match_parent"

android:padding="5dp"

android:layout_height="wrap_content"

android:text="csdn博友时间差算法"

android:gravity="center"

android:id="@+id/btn"

/>

android:layout_marginTop="10dp"

android:layout_width="match_parent"

android:padding="5dp"

android:layout_height="wrap_content"

android:gravity="center"

android:text="当前时间"

android:id="@+id/btn_now"

/>

android:layout_marginTop="10dp"

android:layout_width="match_parent"

android:padding="5dp"

android:layout_height="wrap_content"

android:gravity="center"

android:id="@+id/count"

android:text="新老时间计算"

/>

android:layout_marginTop="10dp"

android:layout_width="match_parent"

android:padding="5dp"

android:layout_height="wrap_content"

android:gravity="center"

android:id="@+id/content"

android:text=""

/>

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

本文标题: Android进阶之使用时间戳计算时间差

本文地址: http://www.cppcns.com/ruanjian/android/215060.html

android 时间差 秒_Android进阶之使用时间戳计算时间差相关推荐

  1. 在线时间戳计算时间差

    在线时间戳计算时间差 在线时间戳计算时间差 Unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒.Unix时间戳(英文为Unix epoch, Unix time, ...

  2. linux下时间戳计算时间差,linux 时间戳及时间差计算

    使用时间戳转换为具体格式的日期输出,输出格式为:date -d '1970-01-01 UTC Timestamp seconds' +"%Y-%m-%d %T %z" [root ...

  3. python计算时间差代码_Python3显示当前时间、计算时间差及时间加减法示例代码...

    Python3显示当前时间.计算时间差及时间加减法示例代码 摘要 在使用Python写程序时,经常需要输出系统的当前时间以及计算两个时间之间的差值,或者将当前时间加减一定时间(天数.小时.分钟.秒)来 ...

  4. php中计算时间差的几种方法,PHP 中计算时间差的几种方法

    在php中计算时间差有时候是件麻烦的事!不过只要你掌握了日期时间函数的用法那这些也就变的简单了: 一个简单的例子就是计算借书的天数,这需要php根据每天的日期进行计算,下面就来谈谈实现这种日期计算的几 ...

  5. 计算机公式求时间差公式,excel时间差计算公式有哪些 excel怎么快速计算时间差...

    随着现在excel表格功能的完善,越来越多的用户喜欢上了这款办公软件,现在已经是上班族基本的职能了,很多功能也在不断的进步,现在excel已经可以计算时间差了,现在虽然还有很多的用户不知道详细的计算方 ...

  6. android 时间差 秒_Android 根据两个时间戳计算时间差(亲测可用)

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String date1 = f ...

  7. Excel使用之计算时间差

    3 月,跳不动了?>>> 现实中我们会遇到使用Excel统计时间差的情况,下图就是要计算时间差的原始Excel: 具体步骤如下: 1.先将数据列格式定义为时间格式:选中时间列,右键选 ...

  8. linux 时间戳及时间差计算

    http://www.sunjianhe.com/?p=760 使用时间戳转换为具体格式的日期输出,输出格式为:date -d '1970-01-01 UTC Timestamp seconds' + ...

  9. linux 时间怎么求差值_linux 时间戳及时间差计算

    使用时间戳转换为具体格式的日期输出,输出格式为:date -d '1970-01-01 UTC Timestamp seconds' +"%Y-%m-%d %T %z" [root ...

最新文章

  1. 动态规划 RQNOJ 吃西瓜 最大子段和三维版
  2. SharePoint视图过滤中People字段的局限
  3. vue ---- ref
  4. python 读取bin文件
  5. 为什么觉得今年工作特别难找?
  6. 自动驾驶 4-4 纵向车辆建模Longitudinal Vehicle Modeling
  7. ASP.NET Core的路由[2]:路由系统的核心对象——Router
  8. GIS公司分布图GIS院校分布图
  9. 为什么会有这么多中间表?
  10. 2019年注册测绘师 测绘管理与法律法规 精讲班视频课程
  11. 定义平行四边形类,继承四边形类,增加判断是否为平行四边形的函数
  12. Ionic4—JS扩展之ion-refresher下拉刷新
  13. 力盟科技冲刺上市:主要通过力盟传媒展业,木瓜移动等亦在努力
  14. 解决联想拯救者Y7000安装ubuntu系统wifi无法连接以及关机卡死问题
  15. (转!)利用Keras实现图像分类与颜色分类
  16. 如何用python完成评分功能呢_Python:豆瓣电影评分
  17. auto.js 快手极速版刷视频3.0
  18. 无线WiFi安全渗透与攻防(四)之kismet的使用
  19. 一个黑色全屏的计时器_一个蒙版,搞定层次感
  20. 2015-8-16,来到魔都上海,开始我全新的DBA生涯

热门文章

  1. 权威公布:彻底搞清楚哪些笔记本和台式机主板能够支持42mm SATA M.2 NGFF(2242)接口的固态硬盘!!!...
  2. 2Python全栈之路系列之基于socket实现聊天机器人
  3. 开源 java CMS - FreeCMS2.4 菜单管理
  4. 第二次启用httpd24调用mysql时出现的错误
  5. SQL2008中Merge的用法
  6. 从Windows到Linux
  7. 51cto博客积分/无忧币规则、等级设定
  8. 提高 DevTools 控制台调试 console 的 12 种方法
  9. reactjs使用eject暴露webpack核心配置
  10. go基础语法:切片的定义