1. 程式人生 > >java工具類-計算相對時間的工具類即兩個時間的時間差

java工具類-計算相對時間的工具類即兩個時間的時間差

java相對時間的工具類,此類中有兩個暴露的方法,相對於當前時間的方法和相對於某時間的方法。
返回String,如:2小時前/3天2時13秒/昨天
具體請執行檢視

(DateTimeFormatUtil.getStrDate(date, form);為將毫秒數轉換為格式化日期的方法,自己編寫)

package com.warmdoctor.service.util;

import java.util.Date;

/**
 *  Copyright   2016    CoderDream's Eclipse
 * 
 *  All right reserved.
 *  
 *  Created on 2016年8月5日 下午5:20:32
 *  
 *  Update on 2016年8月10日 下午2:18:29
 * 
 *  @author
xiaoming * * @mail [email protected] * * @tags An overview of this file: 相對時間轉換 * */
public class RelativeDateFormat { private static final long ONE_MINUTE = 60000L; private static final long ONE_HOUR = 3600000L; private static final long ONE_DAY = 86400000L; private static final long
ONE_WEEK = 604800000L; private static final String ONE_SECOND_CN = "秒"; private static final String ONE_MINUTE_CN = "分鐘"; private static final String ONE_HOUR_CN = "小時"; private static final String ONE_DAY_CN = "天"; private static final String ONE_MONTH_CN = "月"; private static final
String ONE_YEAR_CN = "年"; private static final String ONE_AGO = "前"; /** * @author xiaoming 2016年8月5日 * @describe 相對於當前時間 * @param date * @return * @returnType String */ public static String format(Date date) { if(date == null) date = new Date(); long delta = new Date().getTime() - date.getTime(); if (delta < 1L * ONE_MINUTE) { long seconds = toSeconds(delta); return (seconds <= 0 ? 1 : seconds) + ONE_SECOND_CN + ONE_AGO; } if (delta < 45L * ONE_MINUTE) { long minutes = toMinutes(delta); return (minutes <= 0 ? 1 : minutes) + ONE_MINUTE_CN + ONE_AGO; } if (delta < 24L * ONE_HOUR) { long hours = toHours(delta); return (hours <= 0 ? 1 : hours) + ONE_HOUR_CN + ONE_AGO; } if (delta < 48L * ONE_HOUR) { return "昨天"; } if (delta < 30L * ONE_DAY) { long days = toDays(delta); return (days <= 0 ? 1 : days) + ONE_DAY_CN + ONE_AGO; } if (delta < 12L * 4L * ONE_WEEK) { long months = toMonths(delta); return (months <= 0 ? 1 : months) + ONE_MONTH_CN + ONE_AGO; } else { long years = toYears(delta); return (years <= 0 ? 1 : years) + ONE_YEAR_CN + ONE_AGO; } } /** * @author xiaoming 2016年8月5日 * @describe 相對於某個時間, 計算時間差 * @param date * @param ofDate 最後時間 * @return * @returnType String */ public static String formatOfDate(Date date, Date ofDate) { if(date == null) date = new Date(); if(ofDate == null) ofDate = new Date(); long delta = ofDate.getTime() - date.getTime(); delta = Math.abs(delta); long s = toSeconds(delta); long min = toMinutes(delta); long hour = toHours(delta); long day = toDays(delta); long month = toMonths(delta); long year = toYears(delta); if(year > 0) return DateTimeFormatUtil.getStrDate(delta, "yyyy年MM月dd天HH時mm分ss秒"); if(month > 0) return DateTimeFormatUtil.getStrDate(delta, "MM月dd天HH時mm分ss秒"); if(day > 0) return DateTimeFormatUtil.getStrDate(delta, "dd天HH時mm分ss秒"); if(hour > 0) return DateTimeFormatUtil.getStrDate(delta, "HH時mm分ss秒"); if(min > 0) return DateTimeFormatUtil.getStrDate(delta, "mm分ss秒"); return s + ONE_SECOND_CN; } private static long toSeconds(long date) { return date / 1000L; } private static long toMinutes(long date) { return toSeconds(date) / 60L; } private static long toHours(long date) { return toMinutes(date) / 60L; } private static long toDays(long date) { return toHours(date) / 24L; } private static long toMonths(long date) { return toDays(date) / 30L; } private static long toYears(long date) { return toMonths(date) / 365L; } }

相關推薦

java工具-計算相對時間工具時間時間差

java相對時間的工具類,此類中有兩個暴露的方法,相對於當前時間的方法和相對於某時間的方法。 返回String,如:2小時前/3天2時13秒/昨天 具體請執行檢視 (DateTimeFormatUtil.getStrDate(date, form);為將毫

Android 比較時間的大小,時間差,格式化時間,以及格式化時間大小差值、格式化秒錶

一、比較時間的大小-三種方式: 1、獲取時間戳比較 timestamp1 > timestamp2 2、轉換為Date比較 val date=Date() val date2=時間2 date.after(date2) 3、使用工具類(推薦) val dat

joda.time之如何獲取到時間的差值(正確的使用Period

前言 此前Java處理時間日期所使用的 Date 和 Calendar 被詬病不已,Calendar 的主要問題物件可變,而像時間和日期這樣的類應該是不可變的,另外其概念模型也有不明確的地方,月份計算從0開始等等。 JodaTime開源時間/日期庫是很好的替代,另外Java8中也推出了新的java.tim

java山科實驗4-4 設計一個的方法,其輸入是字串的集合,打印出這集合的笛卡爾乘積。

設計一個類的方法,其輸入是兩個字串的集合(每個集合中的字串有相同的意義,例如,一個全是姓名的字串,一個全是班級的字串),打印出這兩個集合的笛卡爾乘積。 package zuoye4; public

Java計算時間時間差

JAVA計算兩個時間的時間差 現在是:2015-07-23 12:59:28 過去是:2015-07-23 09:44:23 要獲得兩個日期差,差的形式為:xx天xx小時xx分xx秒 示例程式碼如下:

Java計算時間差時間相減)

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

關於偽選擇器中一個冒號和冒號的區別

fault 兼容 content 中一 radi view get top AD 只要兼容現代瀏覽器如 webkit、firefox、opera等瀏覽器,對於偽元素采用雙冒號的寫法,要是非要兼容IE瀏覽器,用CSS2的單冒號寫法比較安全。 首先,閱讀 w3c 對兩者的定義:

計算時間時間差

con 計算 default col cond time 比價大小 ole second function GetDateDiff(startTime, endTime, diffType) { //將xxxx-xx-xx的時間格式,轉換為 xxxx/xx/x

moment實現計算時間的差值

說明 mce var console mom moment 分鐘 官方 差值 var m1 = moment(‘2018-08-14 11:00:00‘), m2 = moment(‘2018-08-14 12:10:00‘); console.log(m1)cons

js 計算時間戳之間相隔天數

時間戳 sta var color pre div 天數 code class var start=1491789600000;//2017-4-10 10:00 var end=1494381600000;//2017-5-10 10:00 var utc=end-

Spring用@Autowire向一個註入一個接口的實現

err xtend chang autowired 實現類 autowire bbs control 實現 @Servicepublic class AaaService implements IChangePassword { @Override publi

sql server 計算時間 相差的 幾天幾時幾分幾秒

var cas edi ediff date art star start har CAST ( CAST ( DATEDIFF ( ss, StartTime, ConcludeTime ) / ( 60 * 60 * 24 ) AS INT ) AS VARCHAR

如何計算CDS view裡時間戳之間的天數間隔

ABAP透明表裡的時間戳,資料型別為dec:     有個需求:計算這兩個時間戳之間的天數間隔,丟棄時間戳年-月-日8位後面的小時:分鐘:秒。 舉個例子:如果時間

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

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

PHP計算時間戳之間的日期

function timediff($begin_time, $end_time) { if ($begin_time < $end_time) { $starttime = $begin_time; $endtime = $end_time;

php計算時間相差的天數、小時數、分鐘數、秒數

$startdate="2011-3-15 11:50:00";//開始時間 $enddate="2012-12-12 12:12:12";//結束時間 $date=floor((strtotime($enddate)-strtotime($startdate))/86400); echo "相差天數

計算時間日期相隔的天數,時,分,秒

/* * 計算時間差/兩個時間日期相隔的天數,時,分,秒 * */ public function diff($begin_time, $end_time ) { if ($begin_time < $end_time ) {

java獲取時間之間有多少天

/** * date2比date1多的天數 * @param date1 * @param date2 * @return */ public static int differentDays(Date date1,Date date2) { Calendar cal1 = Cal

js計算時間戳的時間差,並轉換為:幾天幾時幾分

function sj() {             //功能:計算兩個時間之間相差多少個小時                 var date = '2013-08-30 16:55:49:173';             date = date.substring(0

java時間相減

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