public?static?void?main(String[]?args)?throws?ParseException?{

創(chuàng)新互聯(lián)是專業(yè)的衡山網(wǎng)站建設(shè)公司,衡山接單;提供網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行衡山網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
//當(dāng)前時(shí)間
Date?now=new?Date();
SimpleDateFormat?sdf=new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss");
//今年3月5號(hào)10點(diǎn)15分20轉(zhuǎn)成Date類型
Date?old=sdf.parse("2016-03-05?10:15:20");
//計(jì)算時(shí)間差
long?diff=now.getTime()-old.getTime();
long?day=diff/(24*60*60*1000);
long?hour=(diff/(60*60*1000)-day*24);
long?min=((diff/(60*1000))-day*24*60-hour*60);
long?s=(diff/1000-day*24*60*60-hour*60*60-min*60);
System.out.println(""+day+"天"+hour+"小時(shí)"+min+"分"+s+"秒");
}
提供一個(gè)時(shí)間操作類給你,你可以調(diào)用里面的dateDiff方法,dateDiff(new Date(), getDateFromString("明天的字符串")表示的就是現(xiàn)在到明天0點(diǎn)之前的差距天數(shù)。
你要分鐘數(shù)的話就自己改一下dateDiff,不要除以60和24就是分鐘了
以下是工具類代碼
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開始,所以要-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天的全部日期
*?說明:
*?1.日期是從昨天開始算的.
*?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ù)類型異常"?+?dateStr?+?"|"?+?format);
}?catch?(Exception?e)?{
logger.error("數(shù)據(jù)類型異常:"?+?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;?//把開始和結(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));
}
}
第一種是以毫秒為單位計(jì)算的。
[java]?view plain?copy
//偽代碼
long?startTime=System.currentTimeMillis();???//獲取開始時(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();???//獲取開始時(shí)間
doSomeThing();??//測(cè)試的代碼段
long?endTime=System.nanoTime();?//獲取結(jié)束時(shí)間
System.out.println("程序運(yùn)行時(shí)間:?"+(end-start)+"ns");
包含所需的包: ?import java.lang.System;
long t1=System.currentTimeMillis();
.......... //中間放你要測(cè)的代碼
System.out.println("這段代碼運(yùn)行了:"+ (System.currentTimeMillis()-t1)/1000 + "秒!”);
網(wǎng)站標(biāo)題:java統(tǒng)計(jì)時(shí)間的代碼的簡(jiǎn)單介紹
文章分享:http://chinadenli.net/article4/ddgcsie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站設(shè)計(jì)公司、App開發(fā)、網(wǎng)站設(shè)計(jì)、自適應(yīng)網(wǎng)站、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)