欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 运维知识 > android >内容正文

android

android 时间差 秒-ag凯发k8国际

发布时间:2024/10/14 android 37 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 android 时间差 秒_android进阶之使用时间戳计算时间差 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

本文实例为大家分享了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

总结

以上是ag凯发k8国际为你收集整理的android 时间差 秒_android进阶之使用时间戳计算时间差的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

网站地图