1. 程式人生 > >Java計算時間差(兩個時間相減)

Java計算時間差(兩個時間相減)

在Android開發或者Java學習中,經常要求兩個時間差

比如說:

現在是 :2004-03-26 13:31:40

過去是:2004-01-02 11:30:24

我現在要獲得兩個日期差,差的形式為:XX天XX小時XX分XX秒

這前後時間可能是機器生成的,也可能是人工輸入的,那麼我們可以通過下面程式碼來實現

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try
    {
      Date d1 = df.parse("2004-03-26 13:31:40");
      Date d2 = df.parse("2004-01-02 11:30:24");
      long diff = d1.getTime() - d2.getTime();//這樣得到的差值是微秒級別
      long days = diff / (1000 * 60 * 60 * 24);
 
      long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);
      long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);
      System.out.println(""+days+"天"+hours+"小時"+minutes+"分");
    }catch (Exception e)
    {
    }

在Android開發中,你可能需要記錄系統執行的時間長度,那麼你可以在系統啟動時記錄下時間,然後在你想結束的時候再記錄一次時間,兩次時間記錄值作差。具體可參考Java、Android超精確測量程式碼執行時間

得到的差值也是微秒級別的,利用類似的方法,得到秒、分、時、天即可。



相關推薦

Java計算時間差時間

在Android開發或者Java學習中,經常要求兩個時間差 比如說: 現在是 :2004-03-26 13:31:40 過去是:2004-01-02 11:30:24 我現在要獲得兩個日期差,差的形式為:XX天XX小時XX分XX秒 這前後時間可能是機器生成的,也

js計算時間差時間的,或者是某個時間距離現在時間

、、計算現在的時間。年月日時分秒     getNowFormatDate(type) {         var date = new Date();         var

java時間

間隔=Date1.getTime()-Date2.getTime();得出來的是毫秒數. 除1000是秒,再除60是分,再除60是小時. SimpleDateFormat myFormatter = new SimpleDateFormat( "yyyy-MM-dd "

java 計算生日 剩餘天數 日期間隔天數

 public Object decorate(Object columnValue, PageContext pageContext, MediaTypeEnum media) throws DecoratorException    {        Object obj

LeetCode349. Intersection of Two Arrays陣列的交集JAVA實現

Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1], nums2 = [2,2] Output: [2] Examp

前端演算法:給定陣列,編寫一個函式來計算它們的交集陣列的交叉點

給定兩個陣列,編寫一個函式來計算它們的交集。 例1: 輸入: nums1 = [1,2,2,1],nums2 = [2,2] 輸出:[2,2] 例2: 輸入: nums1 = [4,9,5],nums2 = [9,4,9,8,4] 輸出:[4,9] 注意: 結果

Java日期

import java.text.SimpleDateFormat; import java.util.Date; public class DateDifferentExample { pu

js控制日期

cti date check ffd new ken ret spl gettime function getOffDays(startDate, endDate){ var startDateArr = startDate.split("-"); var che

js日期

turn parse function fun func log pre date cti function dateHanle(d1,d2){ if(Date.parse(d1) - Date.parse(d2)==0) { console.log("

python 操作符** 乘號就是乘方

spa 操作 操作符 inpu 類型 str 結果 操作數 輸出 一個乘號*,如果操作數是兩個數字,就是這兩個數字相乘,如2*4,結果為8**兩個乘號就是乘方。比如3**4,結果就是3的4次方,結果是81 *如果是字符串、列表、元組與一個整數N相乘,返回一個其所有元素重復N

mysql 倆時間後取分鐘

edi sta pan != 自動 nth () task date CASE WHEN TIMESTAMPDIFF(MINUTE,o.createDate,o.chargingStartDate) !=15 THEN ‘APP解鎖計費‘ ELSE

日曆的列印月並列列印

初版 // 包含兩種I/O庫,可以使用任一種輸入輸出方式 #include <stdio.h> #include <iostream> #include <iomanip> using namespace std; // 函式printYear:按

JDBC增刪改查方法小記2關聯

第一個類引用http://blog.csdn.net/bhq2010/article/details/7478659 SingletonConn類: import java.sql.Connection; import java.sql.DriverManager; import jav

Centos7編譯安裝ffmpeg字形容“噁心”以及迴圈播放本地視訊命令

迴圈播放本地視訊 ffmpeg -re -stream_loop -1 -i /root/rtmp/video/sss.mp4 -vcodec copy -acodec copy -f flv rtmp://0.0.0.0:1935/live/test1 /root/rtmp/vi

安裝Anaconda3 後,怎樣使用 jupyter notebook的 Python 2.7kernel核可選擇

Anaconda是使用python進行資料分析或資料探勘的一個優秀的工具包,其中的jupyter notebook也是其中一個十分好用的工具。jupyter notebook的使用方法簡單,直接在命令列中jupyter notebook就可以在瀏覽器中啟動。 眾所

劍指offer面試題9:用棧實現佇列佇列模擬棧

 題目描述: 用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。 思路一:有點死腦筋,每次pop後都預設下次是push操作,,,,。233主要是由於沒把握好兩個棧模擬時入隊和出隊的時機。考慮stack1和stack2的大小和入隊出隊的關係即可改

Add Two Numbers連結串列求和

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain

LeetCode刷題記錄——第349題陣列的交集

題目描述 給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,

Linux編譯安裝ffmpeg字形容“噁心”以及迴圈播放本地視訊命令

系統版本:Centos7 迴圈播放本地視訊 ffmpeg -re -stream_loop -1 -i /root/rtmp/video/sss.mp4 -vcodec copy -acodec copy -f flv rtmp://0.0.0.0:1935/l

在SQLserver中如何獲得日期的天數?

DATEDIFF返回跨兩個指定日期的日期和時間邊界數。語法DATEDIFF ( datepart , startdate , enddate )引數datepart是規定了應在日期的哪一部分計算差額的引數。下表列出了 Microsoft® SQL Server™ 識別的日期部分和縮寫。日期部分 縮寫year