java严格日期转换通用类.docx

上传人:b****3 文档编号:4227550 上传时间:2022-11-28 格式:DOCX 页数:10 大小:17.01KB
下载 相关 举报
java严格日期转换通用类.docx_第1页
第1页 / 共10页
java严格日期转换通用类.docx_第2页
第2页 / 共10页
java严格日期转换通用类.docx_第3页
第3页 / 共10页
java严格日期转换通用类.docx_第4页
第4页 / 共10页
java严格日期转换通用类.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

java严格日期转换通用类.docx

《java严格日期转换通用类.docx》由会员分享,可在线阅读,更多相关《java严格日期转换通用类.docx(10页珍藏版)》请在冰豆网上搜索。

java严格日期转换通用类.docx

java严格日期转换通用类

该类库由于设置lenient为false,所以执行的是严格的日期转换(判断日期字符串是否正确我通过会严格转换日期捕获异常来判断)。

  例如:

  在不严格(宽松)的条件下,可以转换成功。

  转换结果为:

  2013-3-20:

00:

00

  在严格的情况下就会报错:

  Exceptioninthread"main"java.text.ParseException:

Unparseabledate:

"2013-2-30"

  atjava.text.DateFormat.parse(DateFormat.java:

337)

  atcom.test.TestDate.main(TestDate.java:

19)

  该类库提供了多种方法,代码如下:

  [java]

  /**

  *严格的日期转换setLenient(false);

  *setLenient

  *publicvoidsetLenient(booleanlenient)指定日期/时间解析是否不严格。

进行不严格解析时,解析程序可以使用启发式的方法来解释与此对象的格式不精确匹配的输入。

进行严格解析时,输入必须匹配此对象的格式。

不败战神:

  *参数:

  *lenient-为true时,解析过程是不严格的

  *不会自动将错误日期转换为正确的日期

  *例如:

19450000,使用原DateUtil会转换为19441130

  *@authorliuzh

  */

  publicclassDateUtils{

  publicstaticfinalStringCOMPACT_DATE_FORMAT="yyyyMMdd";

  publicstaticfinalStringYM="yyyyMM";

  publicstaticfinalStringNORMAL_DATE_FORMAT="yyyy-MM-dd";

  publicstaticfinalStringNORMAL_DATE_FORMAT_NEW="yyyy-mm-ddhh24:

mi:

ss";

  publicstaticfinalStringDATE_FORMAT="yyyy-MM-dd";

  publicstaticfinalStringDATETIME_FORMAT="yyyy-MM-ddHH:

mm:

ss";

  publicstaticfinalStringDATE_ALL="yyyyMMddHHmmssS";

  publicstaticLongstrDateToNum(StringparamString)throwsException{

  if(paramString==null)

  returnnull;天骄无双:

  String[]arrayOfString=null;

  Stringstr="";

  if(paramString.indexOf("-")>=0){

  arrayOfString=paramString.split("-");

  for(inti=0;i

  str=str+arrayOfString[i];

  returnLong.valueOf(Long.parseLong(str));

  }

  returnLong.valueOf(Long.parseLong(paramString));

  }

  publicstaticLongstrDateToNum1(StringparamString)throwsException{

  if(paramString==null)

  returnnull;

  String[]arrayOfString=null;

  Stringstr="";人皇:

  if(paramString.indexOf("-")>=0){

  arrayOfString=paramString.split("-");

  for(inti=0;i

  if(arrayOfString[i].length()==1)

  str=str+"0"+arrayOfString[i];

  else

  str=str+arrayOfString[i];

  returnLong.valueOf(Long.parseLong(str));

  }

  returnLong.valueOf(Long.parseLong(paramString));

  }

  publicstaticStringnumDateToStr(LongparamLong){

  if(paramLong==null)

  returnnull;

  Stringstr=null;

  str=paramLong.toString()。

substring(0,4)+"-"

  +paramLong.toString()。

substring(4,6)+"-"

  +paramLong.toString()。

substring(6,8);

  returnstr;帝尊:

www.dizun.org

  }

  publicstaticLongsysDateToNum()throwsException{

  SimpleDateFormatlocalSimpleDateFormat=newSimpleDateFormat(

  "yyyy-MM-dd");

  localSimpleDateFormat.setLenient(false);

  returnstrDateToNum(localSimpleDateFormat.format(HBUtil.getSysdate()));

  }

  publicstaticjava.util.DatestringToDate(StringparamString1,

  StringparamString2)throwsException{

  SimpleDateFormatlocalSimpleDateFormat=newSimpleDateFormat(

  paramString2);

  localSimpleDateFormat.setLenient(false);

  try{

  returnlocalSimpleDateFormat.parse(paramString1);

  }catch(ParseExceptionlocalParseException){

  thrownewException("解析日期字符串时出错!

");

  }

  }

  publicstaticStringdateToString(java.util.DateparamDate,

  StringparamString){

  SimpleDateFormatlocalSimpleDateFormat=newSimpleDateFormat(

  paramString);天骄无双:

  localSimpleDateFormat.setLenient(false);

  returnlocalSimpleDateFormat.format(paramDate);

  }

  publicstaticjava.util.DatecompactStringToDate(StringparamString)

  throwsException{

  returnstringToDate(paramString,"yyyyMMdd");

  }

  publicstaticStringdateToCompactString(java.util.DateparamDate){

  returndateToString(paramDate,"yyyyMMdd");

  }

  publicstaticStringdateToNormalString(java.util.DateparamDate){

  returndateToString(paramDate,"yyyy-MM-dd");

  }

  publicstaticStringcompactStringDateToNormal(StringparamString)

  throwsException{

  returndateToNormalString(compactStringToDate(paramString));

  }

  publicstaticintgetDaysBetween(java.util.DateparamDate1,

  java.util.DateparamDate2)throwsException{

  CalendarlocalCalendar1=Calendar.getInstance();

  CalendarlocalCalendar2=Calendar.getInstance();

  localCalendar1.setTime(paramDate1);

  localCalendar2.setTime(paramDate2);奥术神座:

  if(localCalendar1.after(localCalendar2))

  thrownewException("起始日期小于终止日期!

");

  inti=localCalendar2.get(6)-localCalendar1.get(6);

  intj=localCalendar2.get

(1);

  if(localCalendar1.get

(1)!

=j){

  localCalendar1=(Calendar)localCalendar1.clone();

  do{

  i+=localCalendar1.getActualMaximum(6);

  localCalendar1.add(1,1);

  }while(localCalendar1.get

(1)!

=j);

  }

returni;

  }

  publicstaticjava.util.DateaddDays(java.util.DateparamDate,intparamInt)

  throwsException{

  CalendarlocalCalendar=Calendar.getInstance();

  localCalendar.setTime(paramDate);

  inti=localCalendar.get(6);斩龙:

  localCalendar.set(6,i+paramInt);

  returnlocalCalendar.getTime();

  }

  publicstaticjava.util.DateaddDays(StringparamString1,

  StringparamString2,intparamInt)throwsException{

  CalendarlocalCalendar=Calendar.getInstance();

  java.util.DatelocalDate=stringToDate(paramString1,paramString2);

  localCalendar.setTime(localDate);

  inti=localCalendar.get(6);

  localCalendar.set(6,i+paramInt);

  returnlocalCalendar.getTime();

  }

  publicstaticjava.sql.DategetSqlDate(java.util.DateparamDate)

  throwsException{

  java.sql.DatelocalDate=newjava.sql.Date(paramDate.getTime());

  returnlocalDate;

  }

  publicstaticStringformatDate(java.util.DateparamDate){

  if(paramDate==null)

  returnnull;

  SimpleDateFormatlocalSimpleDateFormat=newSimpleDateFormat("yyyy-MM-dd");

  localSimpleDateFormat.setLenient(false);

  returnlocalSimpleDateFormat.format(paramDate);

  }

  publicstaticStringformatDateTime(java.util.DateparamDate){

  if(paramDate==null)

  returnnull;

  SimpleDateFormatlocalSimpleDateFormat=newSimpleDateFormat("yyyy-MM-ddHH:

mm:

ss");

  localSimpleDateFormat.setLenient(false);

  returnlocalSimpleDateFormat.format(paramDate);

  }天骄无双:

  publicstaticjava.util.DateparseDate(StringparamString)

  throwsException{

  if((paramString==null)||(paramString.trim()。

equals("")))

  returnnull;

  SimpleDateFormatlocalSimpleDateFormat=newSimpleDateFormat("yyyy-MM-dd");

  localSimpleDateFormat.setLenient(false);

  try{

  returnlocalSimpleDateFormat.parse(paramString);

  }catch(ParseExceptionlocalParseException){

  thrownewException("日期解析出错!

",localParseException);

  }

  }

  publicstaticjava.util.DateparseDateTime(StringparamString)

  throwsException{

  if((paramString==null)||(paramString.trim()。

equals("")))

  returnnull;

  SimpleDateFormatlocalSimpleDateFormat=newSimpleDateFormat("yyyy-MM-ddHH:

mm:

ss");

  localSimpleDateFormat.setLenient(false);

  try{

  returnlocalSimpleDateFormat.parse(paramString);

  }catch(ParseExceptionlocalParseException){

  thrownewException("时间解析异常!

",localParseException);

  }

  }

  publicstaticIntegergetYM(StringparamString)throwsException{

  if(paramString==null)

  returnnull;九星天辰诀:

www.dizun.cc

  SimpleDateFormatlocalSimpleDateFormat=newSimpleDateFormat("yyyy-MM-dd");

  localSimpleDateFormat.setLenient(false);

  java.util.DatelocalDate;

  try{

  localDate=localSimpleDateFormat.parse(paramString);

  }catch(ParseExceptionlocalParseException){

  thrownewException("时间解析异常!

",localParseException);

  }

  returngetYM(localDate);

  }

  publicstaticIntegergetYM(java.util.DateparamDate){

  if(paramDate==null)

  returnnull;

  CalendarlocalCalendar=Calendar.getInstance();

  localCalendar.setTime(paramDate);

  inti=localCalendar.get

(1);

  intj=localCalendar.get

(2)+1;

  returnnewInteger(i*100+j);

  }

  publicstaticintaddMonths(intparamInt1,intparamInt2){

  CalendarlocalCalendar=Calendar.getInstance();

  localCalendar.set(1,paramInt1/100);

  localCalendar.set(2,paramInt1%100-1);

  localCalendar.set(5,1);

  localCalendar.add(2,paramInt2);

  returngetYM(localCalendar.getTime())。

intValue();

  }

  publicstaticjava.util.DateaddMonths(java.util.DateparamDate,

  intparamInt){

  CalendarlocalCalendar=Calendar.getInstance();

  localCalendar.setTime(paramDate);

  localCalendar.add(2,paramInt);

  returnlocalCalendar.getTime();飞速小说:

  }

  publicstaticintmonthsBetween(intparamInt1,intparamInt2){

  inti=paramInt2/100*12+paramInt2%100

  -(paramInt1/100*12+paramInt1%100);

  returni;

  }

  publicstaticintmonthsBetween(java.util.DateparamDate1,

  java.util.DateparamDate2){

  returnmonthsBetween(getYM(paramDate1)。

intValue(),getYM(paramDate2)。

intValue());

  }

  publicstaticStringgetChineseDate(CalendarparamCalendar){

  inti=paramCalendar.get

(1);

  intj=paramCalendar.get

(2);

  intk=paramCalendar.get(5);

  StringBufferlocalStringBuffer=newStringBuffer();

  localStringBuffer.append(i);

  localStringBuffer.append("年");

  localStringBuffer.append(j+1);

  localStringBuffer.append("月");

  localStringBuffer.append(k);

  localStringBuffer.append("日");

  returnlocalStringBuffer.toString();

  }

  publicstaticStringgetChineseWeekday(CalendarparamCalendar){

  switch(paramCalendar.get(7)){

  case2:

  return"星期一";

  case3:

  return"星期二";悍戚:

  case4:

  return"星期三";

  case5:

  return"星期四";

  case6:

  return"星期五";

  case7:

  return"星期六";

  case1:

  return"星期日";

  }

  return"未知";

  }

  publicstaticvoidmain(String[]paramArrayOfString){

  try{

  System.out.println(formatDate(addMonths(parseDate("2013-01-06"),12)));

  }catch(ExceptionlocalException){

  System.out.println(localException);

  }

  }

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1