日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java时间日期工具类_java日期处理工具类

發(fā)布時間:2023/12/2 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java时间日期工具类_java日期处理工具类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

java日期處理工具類

import?java.text.DecimalFormat;

import?java.text.ParsePosition;

import?java.text.SimpleDateFormat;

import?java.util.Calendar;

import?java.util.Date;

import?java.util.GregorianCalendar;

import?java.util.Locale;

import?java.util.Random;

import?java.util.StringTokenizer;

import?java.util.Vector;

public?class?DateUtil

{

public?static?final?String?DEFAULT_DATE_FORMAT?=?"MM-dd-yyyy";

public?static?final?String?ZH_DATE_FORMAT?=?"yyyy-MM-dd";

public?static?final?String?DEFAULT_TIME_FORMAT?=?"HH:mm:ss";

public?static?final?String?DEFAULT_DATETIME_FORMAT?=?"MM-dd-yyyy?HH:mm:ss";

public?static?final?String?ZH_DATETIME_FORMAT?=?"yyyy-MM-dd?HH:mm:ss";

public?static?final?String?DEFAULT_PRECISION_DATETIME_FORMAT?=?"MM-dd-yyyy?HH:mm:ss:SSS";

public?static?final?String?ZH_PRECISION_DATETIME_FORMAT?=?"yyyy-MM-dd?HH:mm:ss:SSS";

public?static?final?String?DEFAULT_PRECISION_MILLTIME_FORMAT?=?"yyyy:MM:dd?HH:mm:ss:SSS";

public?static?final?String?DEFAULT_HOUR_DATE_FORMAT?=?"MM-dd-yyyy?HH";

public?static?final?String?ZH_HOUR_DATE_FORMAT?=?"yyyy-MM-dd?HH";

public?static?final?String?DEFAULT_MINUTE_DATE_FORMAT?=?"MM-dd-yyyy?HH:mm";

public?static?final?String?ZH_MINUTE_DATE_FORMAT?=?"yyyy-MM-dd?HH:mm";

public?static?final?String?ZH_SECOND_DATE_FORMAT?=?"yyyyMMddHHmmss";

/**

*?日期時間格式1-"yyyy.MM.dd?HH:mm:ss"

*/

public?static?final?String?TIMEFORMAT_FULL?=?"yyyy.MM.dd?HH:mm:ss";

/**

*?日期時間格式2-"yyyy.MM.dd?HH:mm"

*/

public?static?final?String?TIMEFORMAT_NO_SEC?=?"yyyy.MM.dd?HH:mm";

/**

*?日期格式1-"yyyy.MM.dd"

*/

public?static?final?String?TIMEFORMAT_NO_TIME?=?"yyyy.MM.dd";

/**

*?日期格式2-"yyyy.MM"

*/

public?static?final?String?TIMEFORMAT_YEAR_MONTH_ONLY?=?"yyyy.MM";

/**

*?日期格式3-"yyyyMMdd"

*/

public?static?final?String?TIMEFORMAT_ANOTHER_DATE?=?"yyyyMMdd";

/**

*?1024以內(nèi)的素數(shù)表,172個

*/

public?static?int?sNumprime[]?=?{?2,?3,?5,?7,?11,?13,?17,?19,?23,?29,?31,?37,?41,?43,?47,?53,?59,?61,?67,?71,?73,

79,?83,?89,?97,?101,?103,?107,?109,?113,?127,?131,?137,?139,?149,?151,?157,?163,?167,?173,?179,?181,?191,

193,?197,?199,?211,?223,?227,?229,?233,?239,?241,?251,?257,?263,?269,?271,?277,?281,?283,?293,?307,?311,

313,?317,?331,?337,?347,?349,?353,?359,?367,?373,?379,?383,?389,?397,?401,?409,?419,?421,?431,?433,?439,

443,?449,?457,?461,?463,?467,?479,?487,?491,?499,?503,?509,?521,?523,?541,?547,?557,?563,?569,?571,?577,

587,?593,?599,?601,?607,?613,?617,?619,?631,?641,?643,?647,?653,?659,?661,?673,?677,?683,?691,?701,?709,

719,?727,?733,?739,?743,?751,?757,?761,?769,?773,?787,?797,?809,?811,?821,?823,?827,?829,?839,?853,?857,

859,?863,?877,?881,?883,?887,?907,?911,?919,?929,?937,?941,?947,?953,?967,?971,?977,?983,?991,?997,?1009,

1013,?1019,?1021?};

/**

*?構(gòu)造函數(shù)

*/

public?DateUtil()

{

}

/**

*?按日期時間格式1返回當(dāng)前時間?yyyy.MM.dd?HH:mm:ss

*

*?@return?String?獲得當(dāng)前時間

*/

public?static?String?getCurrentDateTime()

{

SimpleDateFormat?sdf?=?new?SimpleDateFormat(TIMEFORMAT_FULL);

return?sdf.format(new?Date());

}

public?static?String?getCurrentDateTime_14()

{

SimpleDateFormat?sdf?=?new?SimpleDateFormat(ZH_SECOND_DATE_FORMAT);

return?sdf.format(new?Date());

}

/**

*?按日期格式1返回當(dāng)前日期

*

*?@return?String?獲得當(dāng)前日期

*/

public?static?String?getCurrentDate()

{

SimpleDateFormat?sdf?=?new?SimpleDateFormat(TIMEFORMAT_NO_TIME,?Locale.US);

return?sdf.format(new?Date());

}

/**

*?按日期格式3返回數(shù)字日期

*

*?@return?String?獲得數(shù)字日期

*/

public?static?String?getPiciDate()

{

SimpleDateFormat?sdf?=?new?SimpleDateFormat(TIMEFORMAT_ANOTHER_DATE,?Locale.US);

return?sdf.format(new?Date());

}

/**

*?按日期格式3返回數(shù)字日期

*

*?@param?sNowDateTime?設(shè)置時間,格式為YYYYMMDDHH24MISS

*/

public?static?void?setCurrentDate(String?sNowDateTime)

{

if?(sNowDateTime.length()?==?14)

{

int?iyear;

int?imonth;

int?idate;

int?ihour;

int?iminute;

int?isecond;

iyear?=?java.lang.Integer.parseInt(sNowDateTime.substring(0,?4));

if?(iyear?

{

iyear?=?2003;

}

imonth?=?java.lang.Integer.parseInt(sNowDateTime.substring(4,?6));

if?(imonth?>?12)

{

imonth?=?11;

}

idate?=?java.lang.Integer.parseInt(sNowDateTime.substring(6,?8));

if?(idate?>?31)

{

idate?=?11;

}

ihour?=?java.lang.Integer.parseInt(sNowDateTime.substring(8,?10));

if?(ihour?>?23)

{

ihour?=?11;

}

iminute?=?java.lang.Integer.parseInt(sNowDateTime.substring(10,?12));

if?(iminute?>?59)

{

iminute?=?11;

}

isecond?=?java.lang.Integer.parseInt(sNowDateTime.substring(12,?14));

if?(isecond?>?59)

{

isecond?=?11;

}

Calendar?serverNow?=?Calendar.getInstance();

serverNow.set(iyear,?imonth,?idate,?ihour,?iminute,?isecond);

}

}

/**

*?Function?name:?sGetAddTimes?Description:?給一個時間增加上一定的時間

*

*?@param?timePoint?計時時間點(diǎn)(格式:TimeFormat1)

*?@param?addSeconds?times?to?add(單位:秒)

*?@return?String?返回增加時間后的時間(格式:TimeFormat1)

*/

public?static?String?sGetAddTimes(String?timePoint,?long?addSeconds)

{

if?(timePoint.length()?==?19)

{

String?dRet?=?"";

SimpleDateFormat?sdf?=?new?SimpleDateFormat(TIMEFORMAT_FULL);

Date?timePoints?=?sdf.parse(timePoint,?new?java.text.ParsePosition(0));

Date?dateTimes?=?new?Date((timePoints.getTime()?/?1000L?+?(addSeconds))?*?1000L);

dRet?=?sdf.format(dateTimes);

return?dRet;

}

else

{

return?"";

}

}

/**

*?Function?name:?sGetAddTimes?Description:?給一個時間減去上一定的時間

*

*?@param?timePoint?計時時間點(diǎn)(格式:TimeFormat1)

*?@param?addSeconds?times?to?add(單位:秒)

*?@return?String?返回減去時間后的時間(格式:TimeFormat1)

*/

public?static?String?sGetMinusTimes(String?timePoint,?long?minusSeconds)

{

if?(timePoint.length()?==?19)

{

String?dRet?=?"";

SimpleDateFormat?sdf?=?new?SimpleDateFormat(TIMEFORMAT_FULL);

Date?timePoints?=?sdf.parse(timePoint,?new?java.text.ParsePosition(0));

Date?dateTimes?=?new?Date((timePoints.getTime()?/?1000L?-?(minusSeconds))?*?1000L);

dRet?=?sdf.format(dateTimes);

return?dRet;

}

else

{

return?"";

}

}

/**

*?Function?name:?lTimeCompare?Description:?兩時間比較.?Compare?two?times

*

*?@param?compTime1?比較時間1(格式:TimeFormat1)

*?@param?compTime2?比較時間2(格式:TimeFormat1)

*?@return?long?返回相差的時間(單位:秒)

*/

public?static?long?lTimeCompare(String?compTime1,?String?compTime2)

{

if?((compTime1.length()?==?19)?&&?(compTime2.length()?==?19))

{

long?iReturn?=?-1;

SimpleDateFormat?sdf?=?new?SimpleDateFormat(TIMEFORMAT_FULL);

Date?dateTime1?=?sdf.parse(compTime1,?new?java.text.ParsePosition(0));

Date?dateTime2?=?sdf.parse(compTime2,?new?java.text.ParsePosition(0));

iReturn?=?dateTime2.getTime()?/?1000L?-?dateTime1.getTime()?/?1000L;

return?iReturn;

}

else

{

return?0;

}

}

/**

*?Function?name:?lTimeCompareNow?Description:?與當(dāng)前時間比較.?Compare?one?time

*?with?now

*

*?@param?compTime1?比較時間1(格式:TimeFormat1)

*?@return?long?返回相差的時間(單位:秒)

*/

public?static?long?lTimeCompareNow(String?compTime1)

{

if?(compTime1?!=?null?&&?compTime1.equals("999"))

{

return?-1;

}

if?(compTime1.length()?==?19?||?compTime1.length()?==?10)

{

long?iReturn?=?-1;

if?(compTime1.length()?==?10)

{

compTime1?+=?"?00:00:00";

}

SimpleDateFormat?sdf?=?new?SimpleDateFormat(TIMEFORMAT_FULL);

Date?dateTime1?=?sdf.parse(compTime1,?new?java.text.ParsePosition(0));

iReturn?=?java.lang.System.currentTimeMillis()?/?1000L?-?dateTime1.getTime()?/?1000L;

return?iReturn;

}

else

{

return?0;

}

}

/**

*?Function?name:?fmtDate?Description:?日期字符串規(guī)范化.?format?a?date?string?using

*?comm

*

*?@param?sDate?要規(guī)范的日期字符串(如2003-11-11、2003/11/11)

*?@param?comm?日期字符串中間的分隔符

*?@return?String?返回規(guī)范化后的字符串

*/

public?static?String?fmtDate(String?sDate,?String?comm)

{

String?dRet?=?"";

if?(sDate.length()?==?10)

{

}

else

{

sDate?=?getCurrentDate();

}

dRet?=?sDate.substring(0,?4)?+?comm?+?sDate.substring(5,?7)?+?comm?+?sDate.substring(8,?10);

return?dRet;

}

/**

*?Function?name:?fmtDateTime?Description:?日期時間字符串規(guī)范化.?format?a?date?string

*?using?comm

*

*?@param?sDate?要規(guī)范的日期時間字符串(如2003-11-11?11:11:11、2003/11/11?11:11:11)

*?@param?comm?日期中間的分隔符

*?@return?String?返回規(guī)范化后的字符串

*/

public?static?String?fmtDateTime(String?sDate,?String?comm)

{

String?dRet?=?"";

if?(sDate.length()?==?19)

{

}

else

{

sDate?=?getCurrentDateTime();

}

dRet?=?sDate.substring(0,?4)?+?comm?+?sDate.substring(5,?7)?+?comm?+?sDate.substring(8,?10)?+?"?"

+?sDate.substring(11,?13)?+?":"?+?sDate.substring(14,?16)?+?":"?+?sDate.substring(17,?19);

return?dRet;

}

/**

*?Function?Name:?SubStr?Description:?取指定長度的字符子串,超過取到串尾

*

*?@param?fullString?源字符串

*?@param?nStart?開始字節(jié)

*?@param?nLen?要取的長度

*?@return?String?返回目的字符串

*/

public?static?String?subStr(String?fullString,?int?nStart,?int?nLen)

{

String?sResult?=?"";

if?((nStart?+?nLen)?>?fullString.length())

{

sResult?=?fullString.substring(nStart);

}

else

{

sResult?=?fullString.substring(nStart,?(nStart?+?nLen));

}

return?sResult;

}

/**

*?Function?Name:?DevideStr?Description:?分解字符串

*

*?@param?fullString?源字符串

*?@param?sComm?字符串中間的分隔符

*?@return?Vector?返回分解后的字符串列

*/

public?static?Vector?devideStr(String?fullString,?String?sComm)

{

Vector?vTmp?=?new?Vector();

try

{

if?(sComm.length()?>?1)

{

sComm?=?sComm.substring(0,?1);

}

StringTokenizer?stString?=?new?StringTokenizer(fullString,?sComm);

while?(stString.hasMoreTokens())

{

vTmp.addElement(stString.nextToken());

}

}

catch?(Exception?e)

{

vTmp.clear();

}

return?vTmp;

}

/**

*?Function?Name:?DivideCSV?Description:?分解CSV格式字符串

*

*?@param?fullString?源字符串

*?@param?sComm?字符串中間的分隔符

*?@return?Vector?返回分解后的字符串列

*?@see?#devideStr(String,?String)?deprecated?由DevideStr(String,

*??????String)函數(shù)替代,該函數(shù)不再使用。

*/

public?static?Vector?divideCSV(String?fullString,?String?sComm)

{

Vector?vTmp?=?new?Vector();

if?(sComm.length()?>?1)

{

sComm?=?sComm.substring(0,?1);

}

StringTokenizer?stString?=?new?StringTokenizer(fullString,?sComm);

while?(stString.hasMoreTokens())

{

vTmp.addElement(stString.nextToken());

}

return?vTmp;

}

/**

*?Function?Name:?GenRandom?Description:?隨機(jī)數(shù)產(chǎn)生程序

*

*?@param?nIn?隨機(jī)數(shù)種子

*?@param?nLen?隨機(jī)數(shù)長度

*?@return?String?返回隨機(jī)數(shù)

*/

public?static?String?genRandom(int?nIn,?int?nLen)

{

int?nYear;

int?nMonth;

int?nDay;

int?nHour;

int?nSec;

int?nMsec;

double?f1;

double?f2;

long?temp;

int?count;

int?loopCount;

int?i;

int?rest;

String?sResult?=?"";

String?sFull?=?"";

if?(nLen?>?9)

{

loopCount?=?nLen?/?9;

for?(i?=?1;?i?<=?loopCount;?i++)

{

sResult?=?sResult?+?genRandom(i,?9);

}

rest?=?nLen?-?loopCount?*?9;

if?(rest?!=?0)

{

sResult?=?sResult?+?genRandom(1,?rest);

}

}

else

{

if?(nLen?==?0)

{

return?"";

}

sFull?=?"";

for?(count?=?1;?count?<=?nLen;?count++)

{

sFull?=?sFull?+?"0";

}

DecimalFormat?nf?=?new?DecimalFormat(sFull);

Calendar?nowTime?=?Calendar.getInstance();

nYear?=?nowTime.get(Calendar.YEAR);

nMonth?=?nowTime.get(Calendar.MONTH)?+?1;

nDay?=?nowTime.get(Calendar.DAY_OF_MONTH);

nHour?=?nowTime.get(Calendar.HOUR_OF_DAY);

nSec?=?nowTime.get(Calendar.SECOND);

nMsec?=?nowTime.get(Calendar.MILLISECOND);

f2?=?Math.sin(Math.sqrt((nIn?%?713)?+?nMsec?+?nSec?*?34?+?nHour?*?47)?+?nMsec?*?nSec?*?nHour);

f1?=?Math.pow((Math.abs(f2?*?89?+?79?*?Math.cos(nIn?+?nMsec?*?nSec))?*?31),?2);

temp?=?(long)?f1?+?nIn?+?nYear?+?nMonth?*?11?+?nDay;

StringBuffer?stemp?=?new?StringBuffer((new?java.lang.Long(temp)).toString());

stemp?=?stemp.reverse();

Random?rd?=?new?Random();

rd.setSeed(java.lang.Long.parseLong(stemp.toString())?+?(nIn?%?3));

sResult?=?nf.format(rd.nextInt((int)?(Math.pow(10,?nLen)?-?1)));

}

return?sResult;

}

/**

*?Function?Name:?VarlenRnd?Description:?取可變長隨機(jī)數(shù),長度范圍由參數(shù)指定

*

*?@param?minLen?最小長度

*?@param?maxLen?最大長度

*?@return?String?返回隨機(jī)數(shù)

*/

public?static?String?varlenRnd(int?minLen,?int?maxLen)

{

String?sResult?=?"";

if?(minLen?

{

int?nLen?=?java.lang.Integer.parseInt(genRandom(3,?1))?%?(maxLen?-?minLen?+?1)?+?minLen;

sResult?=?genRandom(3,?nLen);

}

else

{

sResult?=?genRandom(3,?maxLen);

}

return?sResult;

}

/**

*?BCD碼左對齊轉(zhuǎn)字符串

*

*?@param?bcd?你一次讀進(jìn)的字節(jié)數(shù),因?yàn)榭赡軙笥谀阋幚淼淖止?jié)數(shù)

*?@param?begin?字節(jié)開始位置

*?@param?length?字節(jié)長,與begin一起決定真正要處理的字節(jié)數(shù)

*?@return?String?返回對齊后字符串

*/

public?static?String?bcd2Str(byte[]?bcd,?int?begin,?int?length)

{

String?str?=?"";

int?temp;

for?(int?i?=?begin;?i?

{

if?(bcd[i]?==?0)

{

break;

}

temp?=?(bcd[i]?&?0x0F)?%?10;

str?+=?temp;

temp?=?(bcd[i]?>>>?4)?%?10;

if?(bcd[i]?>>>?4?!=?0)

{

str?+=?temp;

}

}

return?str;

}

/**

*?普通的二進(jìn)制轉(zhuǎn)字串

*

*?@param?hex?你一次讀進(jìn)的字節(jié)數(shù),因?yàn)榭赡軙笥谀阋幚淼淖止?jié)數(shù)

*?@param?begin?字節(jié)開始位置

*?@param?num?字節(jié)長,與begin一起決定真正要處理的字節(jié)數(shù)

*?@return?String?返回轉(zhuǎn)換后字符串

*/

public?static?String?hex2Str(byte[]?hex,?int?begin,?int?num)

{

String?overflow?=?"overflow";

long?ll?=?0;

if?(num?>?8)

{

return?overflow;

}

for?(int?i?=?begin;?i?

{

ll?=?ll?*?256?+?hex[i];

}

return?String.valueOf(ll);

}

/**

*?獲取日期的年份

*

*?@param?d?日期

*?@return?年份

*/

public?static?int?getYear(Date?d)

{

GregorianCalendar?cal?=?new?GregorianCalendar();

if?(d?!=?null)

{

cal.setTime(d);

return?cal.get(Calendar.YEAR);

}

else

{

return?1900;

}

}

/**

*?獲取日期的月份

*

*?@param?d?日期

*?@return?月份

*/

public?static?int?getMonth(Date?d)

{

GregorianCalendar?cal?=?new?GregorianCalendar();

if?(d?!=?null)

{

cal.setTime(d);

return?cal.get(Calendar.MONTH)?+?1;

}

else

{

return?1;

}

}

/**

*?獲取日期的天

*

*?@param?d?日期

*?@return?天

*/

public?static?int?getDay(Date?d)

{

GregorianCalendar?cal?=?new?GregorianCalendar();

if?(d?!=?null)

{

cal.setTime(d);

return?cal.get(Calendar.DAY_OF_MONTH);

}

else

{

return?1;

}

}

/**

*?獲取日期的小時

*

*?@param?d?日期

*?@return?小時

*/

public?static?int?getHour(Date?d)

{

GregorianCalendar?cal?=?new?GregorianCalendar();

if?(d?!=?null)

{

cal.setTime(d);

return?cal.get(Calendar.HOUR_OF_DAY);

}

else

{

return?0;

}

}

/**

*?獲取日期的分

*

*?@param?d?日期

*?@return?分

*/

public?static?int?getMinute(Date?d)

{

GregorianCalendar?cal?=?new?GregorianCalendar();

if?(d?!=?null)

{

cal.setTime(d);

return?cal.get(Calendar.MINUTE);

}

else

{

return?0;

}

}

/**

*?獲取日期的秒

*

*?@param?d?日期

*?@return?秒

*/

public?static?int?getSecond(Date?d)

{

GregorianCalendar?cal?=?new?GregorianCalendar();

if?(d?!=?null)

{

cal.setTime(d);

return?cal.get(Calendar.SECOND);

}

else

{

return?0;

}

}

/**

*?獲取日期的毫秒

*

*?@param?d?日期

*?@return?毫秒

*/

public?static?int?getMilliSecond(Date?d)

{

GregorianCalendar?cal?=?new?GregorianCalendar();

if?(d?!=?null)

{

cal.setTime(d);

return?cal.get(Calendar.MILLISECOND);

}

else

{

return?0;

}

}

/**

*?轉(zhuǎn)換日期為MM-dd-yyyy?HH:mm:ss格式的字符串

*

*?@param?d?日期

*?@return?字符串

*/

public?static?String?toString(Date?d)

{

if?(d?==?null)

{

return?null;

}

return?toString(d,?DEFAULT_DATETIME_FORMAT);

}

/**

*?轉(zhuǎn)換日期為指定格式的字符串

*

*?@param?date?日期

*?@param?format?指定格式

*?@return?字符串

*/

public?static?String?toString(Date?date,?String?format)

{

if?(date?==?null)

{

return?"";

}

if?((format?==?null)?||?(format.length()?==?0))

{

return?"";

}

SimpleDateFormat?formatter?=?new?SimpleDateFormat(format);

return?formatter.format(date);

}

/**

*?轉(zhuǎn)換日期為指定區(qū)域內(nèi)指定格式的字符串

*

*?@param?date?日期

*?@param?format?指定格式

*?@param?locale?指定區(qū)域

*?@return?字符串

*/

public?static?String?toString(Date?date,?String?format,?Locale?locale)

{

if?(date?==?null)

{

return?"";

}

if?((format?==?null)?||?(format.length()?==?0))

{

return?"";

}

if?(locale?==?null)

{

return?"";

}

SimpleDateFormat?formatter?=?new?SimpleDateFormat(format,?locale);

return?formatter.format(date);

}

/**

*?轉(zhuǎn)換字符串為日期

*

*?@param?s?字符串

*?@return?日期

*/

public?static?Date?toDate(String?s)

{

if?((s?==?null)?||?(s.length()?==?0))

{

return?null;

}

return?toDate(s,?DEFAULT_DATETIME_FORMAT);

}

/**

*?轉(zhuǎn)換字符串為指定格式的日期

*

*?@param?s?字符串

*?@param?format?指定格式

*?@return?日期

*/

public?static?Date?toDate(String?s,?String?format)

{

if?((s?==?null)?||?(s.length()?==?0))

{

return?null;

}

if?((format?==?null)?||?(format.length()?==?0))

{

return?null;

}

SimpleDateFormat?formatter?=?new?SimpleDateFormat(format);

ParsePosition?pos?=?new?ParsePosition(0);

Date?d?=?formatter.parse(s,?pos);

return?d;

}

/**

*?轉(zhuǎn)換字符串為指定區(qū)域內(nèi)指定格式的日期

*

*?@param?s?字符串

*?@param?format?指定格式

*?@param?locale?指定區(qū)域

*?@return?日期

*/

public?static?Date?toDate(String?s,?String?format,?Locale?locale)

{

Locale?loc;

if?((s?==?null)?||?(s.length()?==?0))

{

return?null;

}

if?((format?==?null)?||?(format.length()?==?0))

{

return?null;

}

if?(locale?==?null)

{

loc?=?Locale.getDefault();

}

else

{

loc?=?locale;

}

SimpleDateFormat?formatter?=?new?SimpleDateFormat(format,?loc);

ParsePosition?pos?=?new?ParsePosition(0);

Date?d?=?formatter.parse(s,?pos);

return?d;

}

/**

*?判斷字符串是否為日期

*?@param?s?字符串

*?@return?是否為日期

*/

public?static?boolean?isDate(String?s)

{

Date?date?=?toDate(s);

if?(date?==?null)

{

return?false;

}

String?str?=?toString(date);

return?str.equalsIgnoreCase(s);

}

/**

*?判斷字符串是否為指定格式日期

*?@param?s?字符串

*?@param?format?指定格式

*?@return?是否為日期

*/

public?static?boolean?isDate(String?s,?String?format)

{

Date?date?=?toDate(s,?format);

if?(date?==?null)

{

return?false;

}

String?str?=?toString(date,?format);

return?str.equalsIgnoreCase(s);

}

/**

*?判斷字符串是否為指定區(qū)域內(nèi)指定格式日期

*?@param?s?字符串

*?@param?format?指定格式

*?@param?locale?指定區(qū)域

*?@return?是否為日期

*/

public?static?boolean?isDate(String?s,?String?format,?Locale?locale)

{

Date?date?=?toDate(s,?format,?locale);

if?(date?==?null)

{

return?false;

}

String?str?=?toString(date,?format,?locale);

return?str.equalsIgnoreCase(s);

}

/**

*?比較兩日期是否相等

*?@param?d0?日期0

*?@param?d1?日期1

*?@return?是否相等

*/

public?static?boolean?compare(Date?d0,?Date?d1)

{

if?(d0?==?null?&&?d1?==?null)

{

return?true;

}

if?(d0?==?null?||?d1?==?null)

{

return?false;

}

else

{

return?d0.getTime()?==?d1.getTime();

}

}

/**

*?將日期轉(zhuǎn)換為YYYYMMDDHHMISS類型的方法

*

*?@param?d?Date

*?@return?String

*/

public?static?String?toDate(Date?d)

{

return?toString(d,?ZH_SECOND_DATE_FORMAT);

}

/**

*?將日期類型轉(zhuǎn)換為微秒級別的字符串,格式為yyyy:MM:dd?HH:mm:ss:SSS

*

*?@param?d?Date

*?@return?String

*/

public?static?String?toDateOfMilliSecond(Date?d)

{

return?toString(d,?DEFAULT_PRECISION_MILLTIME_FORMAT);

}

/**

*?返回某日期增減指定月數(shù)后的新值

*

*?@param?oldDate?舊日期,格式:yyyyMMddHHmmss

*?@param?valve?增減月數(shù)

*?@return?新日期,格式:yyyyMMddHHmmss

*/

public?static?String?getDateByAddMonth(String?oldDate,?int?valve)

{

Calendar?calendar?=?Calendar.getInstance();

calendar.setTime(toDate(oldDate,?ZH_SECOND_DATE_FORMAT));

calendar.add(Calendar.MONTH,?valve);

return?DateUtil.toDate(calendar.getTime());

}

/**

*?計算增加年份后新的日期的值

*

*?@param?oldDate?之前的日期,精確到秒級,字符串類型,如20060901235959

*?@param?valve?閥值

*?@return?新日期

*/

public?static?String?getDateByAddYear(String?oldDate,?int?valve)

{

int?year?=?Integer.parseInt(oldDate.substring(0,?4));

String?newDate?=?null;

newDate?=?String.valueOf(year?+?valve)?+?oldDate.substring(4,?oldDate.length());

return?newDate;

}

/**

*?計算增加日期后新的日期的值。

*

*?@param?oldDate?之前的日期,精確到秒級,字符串類型,如20060901235959

*?@param?valve?閥值

*?@return?新日期

*/

public?static?String?getDateByAddDay(String?oldDate,?int?valve)

{

Date?a?=?toDate(oldDate,?ZH_SECOND_DATE_FORMAT);

long?b?=?a.getTime();

long?c?=?b?+?valve?*?24?*?60?*?60?*?1000;

Date?d?=?new?Date(c);

return?toDate(d);

}

/**

*?計算增加小時后新的日期的值。

*

*?@param?oldDate?之前的日期,精確到秒級,字符串類型,如20060901235959

*?@param?valve?閥值

*?@return?新日期

*/

public?static?String?getDateByAddHour(String?oldDate,?int?valve)

{

Date?a?=?toDate(oldDate,?ZH_SECOND_DATE_FORMAT);

long?b?=?a.getTime();

long?c?=?b?+?valve?*?60?*?60?*?1000;

Date?d?=?new?Date(c);

return?toDate(d);

}

/**

*?計算增加分鐘后新的日期的值。

*

*?@param?oldDate?之前的日期,精確到秒級,字符串類型,如20060901235959

*?@param?valve?閥值

*?@return?新日期

*/

public?static?String?getDateByAddMinute(String?oldDate,?int?valve)

{

Date?a?=?toDate(oldDate,?ZH_SECOND_DATE_FORMAT);

long?b?=?a.getTime();

long?c?=?b?+?valve?*?60?*?1000;

Date?d?=?new?Date(c);

return?toDate(d);

}

/**

*?計算增加秒鐘后新的日期的值。

*

*?@param?oldDate?之前的日期,精確到秒級,字符串類型,如20060901235959

*?@param?valve?閥值

*?@return?新日期

*/

public?static?String?getDateByAddSecond(String?oldDate,?int?valve)

{

Date?a?=?toDate(oldDate,?ZH_SECOND_DATE_FORMAT);

long?b?=?a.getTime();

long?c?=?b?+?valve?*?1000;

Date?d?=?new?Date(c);

return?toDate(d);

}

/**

*?取得當(dāng)前時間?falg=0?格式為:yyyy.MM.dd?HH:mm:ss?falg=1?格式為:mm

*

*?@param?flag?標(biāo)志

*?@return?當(dāng)前時間

*/

public?static?String?getTime(int?flag)

{

java.text.SimpleDateFormat?formatter?=?new?java.text.SimpleDateFormat("yyyy.MM.dd?HH:mm:ss");

String?operTime?=?formatter.format(new?java.util.Date());

String?sMoth?=?operTime.substring(5,?7);

if?(flag?==?0)

{

return?operTime;

}

else

{

return?sMoth;

}

}

/**

*?判斷是否是閏年

*?@param?year?年份

*?@return?是否是閏年

*/

public?static?boolean?isLeapYear(int?year)

{

if?(year?

{

return?false;

}

if?((year?%?4?==?0?&&?year?%?100?!=?0)?||?(year?%?400?==?0))

{

return?true;

}

else

{

return?false;

}

}

/**

*?把傳進(jìn)來的?日期+時間?格式填充。把時間的?時、分、秒的數(shù)字填充為2位。不足2位的前面補(bǔ)0

*

*?@param?datetime?日期

*?@return?補(bǔ)充后的日期

*/

public?static?String?fillDateTime(String?datetime)

{

if?(datetime?==?null?||?datetime.trim().length()?==?0)

{

return?"";

}

String[]?ary?=?datetime.split("?");

if?(ary?==?null?||?ary.length?!=?2)

{?//這里對日期時間不做合法性檢查。設(shè)定該日期時間都是合法的。

//簡單的檢查下,如果格式不合法,直接返回空字符串

return?"";

}

//這里暫時對日期格式不做轉(zhuǎn)換,只對時間格式做轉(zhuǎn)換

String?time?=?fillTime(ary[1]);

if?(time.trim().length()?==?0)

{//如果時間格式轉(zhuǎn)換錯誤,則返回空字符串

return?"";

}

String?date?=?fillDate(ary[0].replaceAll("\\.",?"-"));

if?(date.trim().length()?==?0)

{

return?"";

}

return?date?+?"?"?+?time;

}

/**

*?填充日期

*?@param?date?日期

*?@return?日期

*/

public?static?String?fillDate(String?date)

{

if?(date?==?null?||?date.length()?==?0)

{

return?"";

}//2009-9-9

String[]?ary?=?date.split("-");

if?(ary.length?!=?3?||?ary[1]?==?null?||?ary[1].trim().length()?==?0?||?ary[2]?==?null

||?ary[2].trim().length()?==?0?||?(ary[1].trim().length()?!=?1?&&?ary[1].trim().length()?!=?2)

||?(ary[2].trim().length()?!=?1?&&?ary[2].trim().length()?!=?2))

{

return?"";

}

if?(ary[1].length()?==?1)

{

ary[1]?=?"0"?+?ary[1];

}

if?(ary[2].length()?==?1)

{

ary[2]?=?"0"?+?ary[2];

}

return?ary[0]?+?"-"?+?ary[1]?+?"-"?+?ary[2];

}

/**

*?填充時間格式.?把時間的?時、分、秒的數(shù)字填充為2位。不足2位的前面補(bǔ)0?轉(zhuǎn)換后的格式為:?HH:mm:ss

*

*?@param?time?日期

*?@return?日期

*/

public?static?String?fillTime(String?time)

{

//這里對時間的合法性不做檢查

if?(time?==?null)

{

return?"";

}

time?=?time.trim();

if?(time.equals(""))

{

return?"";

}

String[]?timesplit?=?time.split(":",?3);

if?(timesplit.length?!=?3)

{

return?"";

}

if?(timesplit[0]?==?null?||?timesplit[1]?==?null?||?timesplit[2]?==?null)

{

return?"";

}

String?shour?=?timesplit[0].trim();

String?sminute?=?timesplit[1].trim();

String?ssecond?=?timesplit[2].trim();

if?(shour.equals("")?||?sminute.equals("")?||?ssecond.equals(""))

{

return?"";

}

if?(shour.length()?==?1)

{

shour?=?"0"?+?shour;

}

if?(sminute.length()?==?1)

{

sminute?=?"0"?+?sminute;

}

if?(ssecond.length()?==?1)

{

ssecond?=?"0"?+?ssecond;

}

return?shour?+?":"?+?sminute?+?":"?+?ssecond;

}

/**

*?檢測輸入字符串是否是時間格式?HH:mm:dd

*

*?@param?s?日期

*?@return?是否是時間格式

*/

public?static?boolean?checkTimeFormat(String?s)

{

if?(s?==?null)

{

return?false;

}

s?=?s.trim();

if?(s.equals(""))

{

return?false;

}

String[]?timesplit?=?s.split(":",?3);

if?(timesplit.length?!=?3)

{

return?false;

}

if?(timesplit[0]?==?null?||?timesplit[1]?==?null?||?timesplit[2]?==?null)

{

return?false;

}

String?shour?=?timesplit[0].trim();

String?sminute?=?timesplit[1].trim();

String?ssecond?=?timesplit[2].trim();

if?(shour.equals("")?||?sminute.equals("")?||?ssecond.equals(""))

{

return?false;

}

try

{

int?ihour?=?Integer.parseInt(shour);

if?(shour.trim().length()?!=?2?&&?shour.trim().length()?!=?1)

{

return?false;

}

if?(ihour?>?23?||?ihour?

{

return?false;

}

if?(sminute.trim().length()?!=?2?&&?sminute.trim().length()?!=?1)

{

return?false;

}

int?iminute?=?Integer.parseInt(sminute);

if?(iminute??59)

{

return?false;

}

if?(ssecond.trim().length()?!=?2?&&?ssecond.trim().length()?!=?1)

{

return?false;

}

int?isecond?=?Integer.parseInt(ssecond);

if?(isecond??59)

{

return?false;

}

}

catch?(Exception?e)

{

return?false;

}

return?true;

}

/**

*?檢測輸入字符串是否是?日期+時間?格式,包括閏年檢測

*?@param?s?日期

*?@return?是否是日期+時間?格式

*/

public?boolean?checkDateTimeFormat(String?s)

{

if?(s?==?null)

{

return?false;

}

s?=?s.trim();

if?(s.equals(""))

{

return?false;

}

String[]?dtparts?=?s.split("?",?2);

if?(dtparts.length?!=?2)

{

return?false;

}

String?dateparts?=?dtparts[0];

String?timeparts?=?dtparts[1];

return?checkDateFormat(dateparts)?&&?checkTimeFormat(timeparts);

}

/**

*?檢測輸入字符串是否是日期格式y(tǒng)yyy-MM-dd,包括閏年檢測

*?@param?s?日期

*?@return?是否是日期格式y(tǒng)yyy-MM-dd

*/

public?static?boolean?checkDateFormat(String?s)

{

if?(s?==?null)

{

return?false;

}

s?=?s.trim();

if?(s.equals(""))

{

return?false;

}

String[]?dts?=?s.split("-");

if?(dts.length?!=?3)

{

return?false;

}

if?(dts[0].length()?!=?4)

{

return?false;

}

if?((dts[1].length()?!=?1?&&?dts[1].length()?!=?2))

{

return?false;

}

if?(dts[2].length()?!=?1?&&?dts[2].length()?!=?2)

{

return?false;

}

int?year?=?0;

int?month?=?0;

int?day?=?0;

int?days?=?0;

try

{

year?=?Integer.valueOf(dts[0]);

if?(year?>?10000?||?year?

{

return?false;

}

}

catch?(Exception?e)

{

return?false;

}

try

{

month?=?Integer.valueOf(dts[1]);

if?(month??12)

{

return?false;

}

}

catch?(Exception?e)

{

return?false;

}

try

{

day?=?Integer.valueOf(dts[2]);

switch?(month)

{

case?1:

case?3:

case?5:

case?7:

case?8:

case?10:

case?12:

days?=?31;

break;

case?4:

case?6:

case?9:

case?11:

days?=?30;

break;

case?2:

if?(isLeapYear(year))

{

days?=?29;

}

else

{

days?=?28;

}

default:

}

if?(day?>?days?||?day?

{

return?false;

}

}

catch?(Exception?e)

{

return?false;

}

return?true;

}

/**

*?把字符串轉(zhuǎn)換成?日期

*?@param?strdate?字符串日期

*?@return?日期

*/

public?Date?stringParsetoDate(String?strdate)

{

if?(strdate?==?null?||?strdate.trim().equals(""))

{

return?null;

}

SimpleDateFormat?sdf?=?new?SimpleDateFormat("yyyy-MM-dd");

try

{

return?sdf.parse(strdate);

}

catch?(Exception?e)

{

return?null;

}

}

/**

*?把字符串轉(zhuǎn)換成?日期時間

*?@param?str?字符串日期

*?@return?日期

*/

public?Date?strToDateTime(String?str)

{

if?(str?==?null?||?str.trim().equals(""))

{

return?null;

}

java.text.SimpleDateFormat?sdf?=?new?java.text.SimpleDateFormat("yyyy-MM-dd?HH:mm:ss");

try

{

return?sdf.parse(str);

}

catch?(Exception?e)

{

return?null;

}

}

/**

*?從字符串中得到月份

*?@param?datestr?字符串日期

*?@return?月份

*/

public?int?getMonthfromStr(String?datestr)

{

int?month?=?0;

if?(datestr?==?null?||?datestr.trim().equals(""))

{

return?month;

}

String[]?splitedate?=?datestr.split("-");

try

{

month?=?Integer.parseInt(splitedate[1].trim());

if?(month??12)

{

return?0;

}

}

catch?(Exception?e)

{

e.printStackTrace();

return?0;

}

return?month;

}

/**

*?把給定日期減去N個月,返回一個Date

*?@param?date?給定日期

*?@param?nMonth?月數(shù)

*?@return?Date

*?@throws?Exception?拋出的異常

*/

public?Date?minusMonth(Calendar?date,?int?nMonth)?throws?Exception

{

date.add(Calendar.MONTH,?-nMonth);

SimpleDateFormat?spdf?=?new?SimpleDateFormat("yyyy-MM-dd");

return?spdf.parse(spdf.format(date.getTime()));

}

}

?著作權(quán)歸作者所有:來自51CTO博客作者lindianlide的原創(chuàng)作品,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任

總結(jié)

以上是生活随笔為你收集整理的java时间日期工具类_java日期处理工具类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。