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 "