本文实例为大家分享了Android使用时间戳计算时间差的具体代码,供大家参考,具体内容如下
因当前项目需要计算时间差,进行数据处理,所以在Csdn上找了一下,之后修修补补是可以用的,建议大家如果用到项目中的话,可能需要把老的时间戳或者时间格式存储在文件或者sp中,之后用于判断,然后进行自己的逻辑处理。
效应:
日志执行:
注:这个可以自己简单封装下,比较简单。
MainActivity:
包com.bakheet.effect.time; 进口android.support.v7.app.AppCompatActivity; 进口android.os.Bundle; 进口android.util.Log; 进口android.view.View; 进口android.widget.TextView; 进口android.widget.Toast; 进口java.text.ParseException; 进口java.text.SimpleDateFormat; 进口java.util.Date; 公开课MainActivity延伸AppCompatActivity { 私人SimpleDateFormat格式; 公共字符串下来; 新时期公共字符串; 私人TextView mContent; 私人TextView mCount; 私人TextView mBtnNow; 私人TextView mBtn; @Override 保护voidtag”、“小时=" +小时); 日志。e(“标签”、“min=" +分钟); 日志。e(“标签”,“第二=" +秒); mContent。setText(“天=" + + ",小时=" +小时+”,min=" +分钟+”,第二个=" +第二); }捕捉(异常e) { e.printStackTrace (); } } });//获取当前的时间戳和时间转译——这里同时用存储老的时间 mBtnNow。setOnClickListener(新View.OnClickListener () { @Override 公共空间”+ timeMillis);//将时间戳转为日期格式 字符串时间=stampToDate (timeMillis); 日志。e(“标签时间=",时间); 下来=时间; 日志。e(“标签新=",下来); 尝试{//将日期格式转回为时间戳的格式 字符串是什么=dateToStamp(时间); 日志。e(“标签="什么,); }捕捉(ParseException e) { e.printStackTrace (); } } });//这是我的代码——主要作用与计算时间差(会用到之前我们的记录的时间,所以使用的时候,无比先执行上面的逻辑) mCount。setOnClickListener(新View.OnClickListener () { @Override 公共空间”+ timeMillis); 字符串时间=stampToDate (timeMillis); 日志。e(“标签时间=",时间); 新时期=时间; 日志。e(“标签新=",新时期); 尝试{//严格来讲,在使用中这里需要判断的,尤其是空的判断,这里我们使用的了试试 日期d1=format.parse(新);//当前时间 日期d2=format.parse(下来);//之前记录的时间 长diff=d1.getTime ()——d2.getTime ();//两时间差,精确到毫秒//以天数为单位取整 漫长的一天=diff/(1000 * 60 * 60 * 24);//以小时为单位取整 长时间=(diff/(60 * 60 * 1000)天* 24);//以分钟为单位取整 长最小值=((diff/(60 * 1000))天* 24 * 60个小时* 60);//以秒为单位 长秒=(diff/1000天* 24 * 60 * 60个小时* 60 *点* 60); 日志。e(“标签”,“天=" +); 日志。e(“标签”,“小时=" +小时); 日志。e(“标签”、“min=" +分钟); 日志。e(“标签”,“第二=" +秒); mContent。setText(“天=" + + ",小时=" +小时+”,min=" +分钟+”,第二个=" +第二); }捕捉(异常e) {//建议抛出总异常 e.printStackTrace (); } } }); }/* * *将时间转换为时间戳 */dateToStamp公共字符串(String)抛出ParseException { SimpleDateFormat SimpleDateFormat=new SimpleDateFormat (“yyyy-MM-dd HH: mm: ss”); 日期=simpleDateFormat.parse日期(时间); 长ts=date.getTime (); 返回String.valueOf (ts); }/* * *将时间戳转换为时间 */公共字符串stampToDate(长timeMillis) { SimpleDateFormat SimpleDateFormat=new SimpleDateFormat (“yyyy-MM-dd HH: mm: ss”); 日期日期=new日期(timeMillis); 返回simpleDateFormat.format(日期); } } >之前MainActivity Xml:
& lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比; & lt; LinearLayout xmlns: android=" http://schemas.android.com/apk/res/android " xmlns:工具=" http://schemas.android.com/tools " android: id=癅 + id/activity_main” android:取向=按怪薄? android: layout_width=" match_parent " android: layout_height=" match_parent " 工具:上下文=癱om.bakheet.effect.time.MainActivity”比; & lt; TextView android: layout_marginTop=" 10 dp” android: layout_width=" match_parent " android:填充=" 5 dp " android: layout_height=" wrap_content " android:文本=" csdn博友时间差算法” android:重力="中心" android: id=癅 + id/btn”/比; & lt; TextView android: layout_marginTop=" 10 dp” android: layout_width=" match_parent " android:填充=" 5 dp " android: layout_height=" wrap_content " android:重力="中心" android:文本="当前时间” android: id=癅 + id/btn_now”/比; & lt; TextView android: layout_marginTop=" 10 dp” android: layout_width=" match_parent " android:填充=" 5 dp " android: layout_height=" wrap_content " android:重力="中心" android: id=癅 + id/计数” android:文本="新老时间计算”/比; & lt; TextView android: layout_marginTop=" 10 dp” android: layout_width=" match_parent " android:填充=" 5 dp " android: layout_height=" wrap_content " android:重力="中心" android: id=癅 + id/内容” android:文本=" "/比; & lt;/LinearLayout>Android的进阶之使用时间戳计算时间差