国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android進(jìn)階之使用時間戳計算時間差

2019-10-22 18:19:47
字體:
供稿:網(wǎng)友

本文實例為大家分享了Android使用時間戳計算時間差的具體代碼,供大家參考,具體內(nèi)容如下

因當(dāng)前項目需要計算時間差,進(jìn)行數(shù)據(jù)處理,所以在Csdn上找了一下,之后修修補補是可以用的,建議大家如果用到項目中的話,可能需要把老的時間戳或者時間format存儲在文件或者sp中,之后用于判斷,然后進(jìn)行自己的邏輯處理。

Effect :

Android,時間戳,時間差

Log執(zhí)行:

Android,時間戳,時間差

注:這個可以自己簡單封裝下,比較簡單。

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內(nèi)一篇博主的博文  mBtn.setOnClickListener(new View.OnClickListener() {   @Override   public void onClick(View view) {    Toast.makeText(MainActivity.this,"Csdn博友事件觸發(fā)",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);   //以天數(shù)為單位取整    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();    }   }  });  //獲取當(dāng)前的時間戳和時間轉(zhuǎn)譯 - 這里同時用存儲老的時間  mBtnNow.setOnClickListener(new View.OnClickListener() {   @Override   public void onClick(View view) {    Toast.makeText(MainActivity.this,"獲取當(dāng)前時間",Toast.LENGTH_SHORT).show();    long timeMillis = System.currentTimeMillis();    Log.e("tag timeMillis =",""+timeMillis);    //將時間戳轉(zhuǎn)為日期格式    String time = stampToDate(timeMillis);    Log.e("tag time = ",time);    oldtime=time;    Log.e("tag newtime = ",oldtime);    try {     //將日期格式轉(zhuǎn)回為時間戳的格式     String what = dateToStamp(time);     Log.e("tag what = ",what);    } catch (ParseException e) {     e.printStackTrace();    }   }  });  //This is my code - - 主要作用與計算時間差 (會用到之前我們的記錄的時間,所以使用的時候,無比先執(zhí)行上面的邏輯)  mCount.setOnClickListener(new View.OnClickListener() {   @Override   public void onClick(View view) {    //思維方式,使用最新的時間減去之前我們的老時間進(jìn)行運算    Toast.makeText(MainActivity.this,"新老時間觸發(fā)",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 {    //嚴(yán)格來講,在使用中這里需要判斷的,尤其是null的判斷,這里我們使用的了 try catch    Date d1 = format.parse(newtime); //當(dāng)前時間    Date d2 = format.parse(oldtime); //之前記錄的時間    Long diff = d1.getTime() - d2.getTime(); //兩時間差,精確到毫秒     //以天數(shù)為單位取整     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();    }   }  }); }  /**  * 將時間轉(zhuǎn)換為時間戳  */ 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); }  /**  * 將時間戳轉(zhuǎn)換為時間  */ 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 :

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 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"> <TextView  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"  /> <TextView  android:layout_marginTop="10dp"  android:layout_width="match_parent"  android:padding="5dp"  android:layout_height="wrap_content"  android:gravity="center"  android:text="當(dāng)前時間"  android:id="@+id/btn_now"  /> <TextView  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="新老時間計算"  /> <TextView  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=""  /></LinearLayout>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宝应县| 安龙县| 钟山县| 亳州市| 西吉县| 阿图什市| 扶沟县| 农安县| 和硕县| 开平市| 孙吴县| 东兰县| 潞西市| 扬州市| 嵊州市| 桃源县| 六枝特区| 南宫市| 桐庐县| 盖州市| 平安县| 沽源县| 常熟市| 浮梁县| 滕州市| 桑植县| 崇明县| 怀安县| 彭阳县| 应城市| 平阳县| 榆林市| 腾冲县| 仁化县| 平谷区| 保靖县| 敦煌市| 祁门县| 鹤壁市| 海晏县| 安新县|