日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 时间差 秒_Android进阶之使用时间戳计算时间差

發布時間:2024/10/14 Android 90 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的android 时间差 秒_Android进阶之使用时间戳计算时间差的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。