提供一個(gè)時(shí)間操作類(lèi)給你,你可以調(diào)用里面的dateDiff方法,dateDiff(new Date(), getDateFromString("明天的字符串")表示的就是現(xiàn)在到明天0點(diǎn)之前的差距天數(shù)。
創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比托克托網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式托克托網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋托克托地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴(lài)。
你要分鐘數(shù)的話就自己改一下dateDiff,不要除以60和24就是分鐘了
以下是工具類(lèi)代碼
import?org.apache.log4j.Logger;
import?java.text.ParseException;
import?java.text.SimpleDateFormat;
import?java.util.Calendar;
import?java.util.Date;
public?class?AdDateUtil?{
private?static?Logger?logger?=?Logger.getLogger(AdDateUtil.class);
static?public?String?getNowStr(String?format)?{
SimpleDateFormat?sdf?=?new?SimpleDateFormat(format);
String?now?=?sdf.format(new?Date());
return?now;
}
static?public?Date?getFormatDate(String?date,?String?format)?{
SimpleDateFormat?sdf?=?new?SimpleDateFormat(format);
Date?d?=?new?Date();
try?{
d?=?sdf.parse(date);
}?catch?(ParseException?e)?{
logger.error(e);
}
return?d;
}
static?public?String?getDateStr(Date?date,?String?format)?{
SimpleDateFormat?sdf?=?new?SimpleDateFormat(format);
String?d?=?sdf.format(date);
return?d;
}
static?public?String?getPadZeroString(String?s,?int?size)?{
StringBuffer?sb?=?new?StringBuffer();
for?(int?i?=?0;?i??(size?-?s.length());?i++)?{
sb.append("0");
}
sb.append(s);
return?sb.toString();
}
/**
*?得到某月的天數(shù)
*
*?@param?year
*?@param?month
*?@return
*/
static?public?int?getDayCountOfMonth(String?year,?String?month)?{
Calendar?cal?=?Calendar.getInstance();
//?年
cal.set(Calendar.YEAR,?Integer.parseInt(year));
//?月,因?yàn)镃alendar里的月是從0開(kāi)始,所以要-1
cal.set(Calendar.MONTH,?Integer.parseInt(month)?-?1);
return?cal.getActualMaximum(Calendar.DAY_OF_MONTH);
}
static?public?String?getYesterday(String?format)?{
SimpleDateFormat?df?=?new?SimpleDateFormat(format);
Calendar?now?=?Calendar.getInstance();
now.roll(Calendar.DAY_OF_YEAR,?-1);?//昨天
return?df.format(now.getTime());
}
/**
*?獲取和今天附近的某天
*?@param?format
*?@param?diff
*?@return
*/
static?public?String?getADay(String?format,?int?diff)?{
SimpleDateFormat?df?=?new?SimpleDateFormat(format);
Calendar?now?=?Calendar.getInstance();
int?beforeM?=?now.get(Calendar.MONTH);
now.roll(Calendar.DAY_OF_YEAR,?diff);?//
int?nowM?=?now.get(Calendar.MONTH);
//必須進(jìn)行日期處理,否則2009-01-04日前七天是2009-12-28
if?(nowM??beforeM)?{
now.roll(Calendar.YEAR,?-1);
}
return?df.format(now.getTime());
}
static?public?String?getTomorrow(String?format)?{
SimpleDateFormat?df?=?new?SimpleDateFormat(format);
Calendar?now?=?Calendar.getInstance();
now.roll(Calendar.DAY_OF_YEAR,?1);?//明天
return?df.format(now.getTime());
}
/**
*?得到最近num天的全部日期
*?說(shuō)明:
*?1.日期是從昨天開(kāi)始算的.
*?2.如果num=2?,?日期是2008-03-14?,則返回的結(jié)果為?2008-03-12、2008-03-13
*?@param?num
*?@return
*/
public?static?String[]?getDaysByNum(int?num,?String?date)?{
SimpleDateFormat?sdf?=?new?SimpleDateFormat("yyyy-MM-dd");
String[]?result?=?{??};
Calendar?cal?=?Calendar.getInstance();
cal.setTime(getDateFromString(date,?"yyyy-MM-dd"));
//最近一周
result?=?new?String[num];
for?(int?i?=?num;?i??0;?i--)?{
cal.add(Calendar.DAY_OF_YEAR,?-1);
result[i?-?1]?=?sdf.format(new?Date(cal.getTimeInMillis()));
}
return?result;
}
public?static?Date?getDateFromString(String?dateStr,?String?format)?{
if?((dateStr?==?null)?||?(format?==?null))?{
try?{
throw?new?Exception("數(shù)據(jù)類(lèi)型異常"?+?dateStr?+?"|"?+?format);
}?catch?(Exception?e)?{
logger.error("數(shù)據(jù)類(lèi)型異常:"?+?e);
}
}
SimpleDateFormat?df?=?new?SimpleDateFormat(format);
Date?date;
try?{
date?=?df.parse(dateStr);
return?date;
}?catch?(Exception?ex)?{
logger.error(ex);
return?new?Date();
}
}
static?public?int?getNowYear()?{
Calendar?cal?=?Calendar.getInstance();
return?cal.get(Calendar.YEAR);
}
static?public?int?getNowMonth()?{
Calendar?cal?=?Calendar.getInstance();
return?cal.get(Calendar.MONTH)?+?1;
}
public?static?String[]?getMonthRang(String?year,?String?month)?{
String?beginDate?=?year?+?"-"?+?month?+?"-01";
String?endDate?=?year?+?"-"?+?month?+?"-"?+
getDayCountOfMonth(year,?month);
return?getDaysByRang(beginDate,?endDate);
}
public?static?String[]?getDaysByRang(String?beginDate,?String?endDate)?{
SimpleDateFormat?sdf?=?new?SimpleDateFormat("yyyy-MM-dd");
//得到兩個(gè)日期間相差多少天
int?num?=?dateDiff(beginDate,?endDate);
if?(num??0)?{
//顛倒一下日期
String?tmp?=?beginDate;
beginDate?=?endDate;
endDate?=?tmp;
num?=?0?-?num;
}
String[]?result?=?{??};
Calendar?cal?=?Calendar.getInstance();
try?{
cal.setTime(sdf.parse(beginDate));
}?catch?(ParseException?e)?{
e.printStackTrace();
}
num?=?num?+?1;?//把開(kāi)始和結(jié)束日期都包含進(jìn)去
result?=?new?String[num];
for?(int?i?=?0;?i??num;?i++)?{
if?(i??0)?{
cal.add(Calendar.DAY_OF_YEAR,?1);
}
result[i]?=?sdf.format(new?Date(cal.getTimeInMillis()));
}
return?result;
}
public?static?int?dateDiff(String?beginDate,?String?endDate)?{
SimpleDateFormat?sdf?=?new?SimpleDateFormat("yyyy-MM-dd");
Date?date?=?null;
try?{
date?=?sdf.parse(endDate);
}?catch?(ParseException?e)?{
date?=?new?Date();
e.printStackTrace();
}
long?end?=?date.getTime();
try?{
date?=?sdf.parse(beginDate);
}?catch?(ParseException?e)?{
date?=?new?Date();
e.printStackTrace();
}
long?begin?=?date.getTime();
long?day?=?(end?-?begin)?/?(1000?*?3600?*?24);?//除1000是把毫秒變成秒
return?Integer.parseInt(Long.toString(day));
}
public?static?void?main(String[]?args)?{
System.out.println(AdDateUtil.getADay("yyyy-MM-dd",?-7));
}
}
java中計(jì)算兩個(gè)時(shí)間相差多少分鐘,具體代碼如下:
public static String getDatePoor(Date endDate, Date nowDate) {
long nd = 1000 * 24 * 60 * 60;
long nh = 1000 * 60 * 60;
long nm = 1000 * 60;
// long ns = 1000;
// 獲得兩個(gè)時(shí)間的毫秒時(shí)間差異
long diff = endDate.getTime() - nowDate.getTime();
// 計(jì)算差多少天
long day = diff / nd;
// 計(jì)算差多少小時(shí)
long hour = diff % nd / nh;
// 計(jì)算差多少分鐘
long min = diff % nd % nh / nm;
// 計(jì)算差多少秒//輸出結(jié)果
// long sec = diff % nd % nh % nm / ns;
return day + "天" + hour + "小時(shí)" + min + "分鐘";
}
data默認(rèn)有toString()
輸出格林威治時(shí)間,比如說(shuō)Date date = new Date();
String toStr = date.toString();
擴(kuò)展資料
Java語(yǔ)言的優(yōu)良特性使得Java應(yīng)用具有無(wú)比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。Java對(duì)對(duì)象技術(shù)的全面支持和Java平臺(tái)內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開(kāi)發(fā)時(shí)間并降低成本。
Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用的開(kāi)放結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。特別是Java企業(yè)應(yīng)用編程接口(Java Enterprise APIs)為企業(yè)計(jì)算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類(lèi)庫(kù)。
1、JDBC(Java Database Connectivity)提供連接各種關(guān)系數(shù)據(jù)庫(kù)的統(tǒng)一接口。
2、EJB(Enterprise JavaBeans)使得開(kāi)發(fā)者方便地創(chuàng)建、部署和管理跨平臺(tái)的基于組件的企業(yè)應(yīng)用。
3、Java RMI(Java Remote Method Invocation)用來(lái)開(kāi)發(fā)分布式Java應(yīng)用程序。一個(gè)Java對(duì)象的方法能被遠(yuǎn)程Java虛擬機(jī)調(diào)用。這樣,遠(yuǎn)程方法激活可以發(fā)生在對(duì)等的兩端,也可以發(fā)生在客戶端和服務(wù)器之間,只要雙方的應(yīng)用程序都是用Java寫(xiě)的。
4、Java IDL(Java Interface Definition Language) 提供與CORBA(Common Object Request Broker Architecture)的無(wú)逢的互操作性。這使得Java能集成異構(gòu)的商務(wù)信息資源。
5、JNDI(Java Naming and Directory Interface)提供從Java平臺(tái)到的統(tǒng)一的無(wú)逢的連接。這個(gè)接口屏蔽了企業(yè)網(wǎng)絡(luò)所使用的各種命名和目錄服務(wù)。
6、JMAPI(Java Management API)為異構(gòu)網(wǎng)絡(luò)上系統(tǒng)、網(wǎng)絡(luò)和服務(wù)管理的開(kāi)發(fā)提供一整套豐富的對(duì)象和方法。
7、JMS(Java Message Service)提供企業(yè)消息服務(wù),如可靠的消息隊(duì)列、發(fā)布和訂閱通信、以及有關(guān)推拉(Push/Pull)技術(shù)的各個(gè)方面。
8、JTS(Java transaction Service)提供存取事務(wù)處理資源的開(kāi)放標(biāo)準(zhǔn),這些事務(wù)處理資源包括事務(wù)處理應(yīng)用程序、事務(wù)處理管理及監(jiān)控。
參考資料:百度百科?Java計(jì)算
第一種是以毫秒為單位計(jì)算的。
[java]?view plain?copy
//偽代碼
long?startTime=System.currentTimeMillis();???//獲取開(kāi)始時(shí)間
doSomeThing();??//測(cè)試的代碼段
long?endTime=System.currentTimeMillis();?//獲取結(jié)束時(shí)間
System.out.println("程序運(yùn)行時(shí)間:?"+(end-start)+"ms");
第二種是以納秒為單位計(jì)算的。?
[java]?view plain?copy
//偽代碼
long?startTime=System.nanoTime();???//獲取開(kāi)始時(shí)間
doSomeThing();??//測(cè)試的代碼段
long?endTime=System.nanoTime();?//獲取結(jié)束時(shí)間
System.out.println("程序運(yùn)行時(shí)間:?"+(end-start)+"ns");
包含所需的包: ?import java.lang.System;