直接上代码:
1 package com.hyhl.util; 2 3 import java.text.DateFormat; 4 import java.text.ParseException; 5 import java.text.SimpleDateFormat; 6 import java.util.*; 7 8 public class DateTimeUtil { 9 10 public final static int TIME_DAY_MILLISECOND = 86400000; 11 12 public final static int TIME_HOUR_MILLISECOND = 1000 * 60 * 60 * 1; 13 14 public final static int TIME_SECONDS_MILLISECOND = 1000; 15 16 // / 17 // 定义时间日期显示格式 18 // / 19 private final static String DATE_FORMAT = "yyyy-MM-dd"; 20 21 private final static String DATE_FORMAT_CN = "yyyy年MM月dd日"; 22 23 private final static String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; 24 25 private final static String TIME_FORMAT_CN = "yyyy年MM月dd日 HH:mm:ss"; 26 27 private final static String MONTH_FORMAT = "yyyy-MM"; 28 29 private final static String DAY_FORMAT = "yyyyMMdd"; 30 31 private final static String TIME_FORMAT_NUM = "MMddHHmmss"; 32 33 // private final static String TIME_FORMAT_MILLI = "yyyy-MM-dd 34 // HH:mm:ss.SSS"; 35 36 /** 37 * 取得当前系统时间,返回java.util.Date类型 38 * 39 * @return java.util.Date 返回服务器当前系统时间 40 * @see java.util.Date 41 */ 42 public static java.util.Date getCurrDate() { 43 return new java.util.Date(); 44 } 45 46 /** 47 * 取得当前系统时间戳 48 * 49 * @return java.sql.Timestamp 系统时间戳 50 * @see java.sql.Timestamp 51 */ 52 public static java.sql.Timestamp getCurrTimestamp() { 53 return new java.sql.Timestamp(System.currentTimeMillis()); 54 } 55 56 /** 57 * 返回当前时间是上午还是下午 58 * 59 * @return 60 */ 61 public static Integer getCurrDateAMorPM() { 62 Calendar calendar = Calendar.getInstance(); 63 return calendar.get(Calendar.AM_PM); 64 } 65 66 /** 67 * 得到格式化后的日期,格式为yyyy-MM-dd,如2009-10-15 68 * 69 * @param currDate 要格式化的日期 70 * @return String 返回格式化后的日期,默认格式为为yyyy-MM-dd,如2009-10-15 71 * @see #getFormatDate(java.util.Date, String) 72 */ 73 public static String getFormatDate(java.util.Date currDate) { 74 return getFormatDate(currDate, DATE_FORMAT); 75 } 76 77 /** 78 * 得到格式化后的日期,格式为yyyy-MM-dd,如2009-10-15 79 * 80 * @param currDate 要格式化的日期 81 * @return Date 返回格式化后的日期,默认格式为为yyyy-MM-dd,如2009-10-15 82 * @see #getFormatDate(java.util.Date) 83 */ 84 public static Date getFormatDateToDate(java.util.Date currDate) { 85 return getFormatDate(getFormatDate(currDate)); 86 } 87 88 /** 89 * 得到格式化后的日期,格式为yyyy年MM月dd日,如2009年02月15日 90 * 91 * @param currDate 要格式化的日期 92 * @return String 返回格式化后的日期,默认格式为yyyy年MM月dd日,如2009年02月15日 93 * @see #getFormatDate(java.util.Date, String) 94 */ 95 public static String getFormatDate_CN(java.util.Date currDate) { 96 return getFormatDate(currDate, DATE_FORMAT_CN); 97 } 98 99 /** 100 * 得到格式化后的日期,格式为yyyy年MM月dd日,如2009年02月15日 101 * 102 * @param currDate 要格式化的日期 103 * @return Date 返回格式化后的日期,默认格式为yyyy年MM月dd日,如2009年02月15日 104 * @see #getFormatDate_CN(String) 105 */ 106 public static Date getFormatDateToDate_CN(java.util.Date currDate) { 107 return getFormatDate_CN(getFormatDate_CN(currDate)); 108 } 109 110 /** 111 * 得到格式化后的日期,格式为yyyy-MM-dd,如2009-10-15 112 * 113 * @param currDate 要格式化的日期 114 * @return Date 返回格式化后的日期,默认格式为yyyy-MM-dd,如2009-10-15 115 * @see #getFormatDate(String, String) 116 */ 117 public static Date getFormatDate(String currDate) { 118 return getFormatDate(currDate, DATE_FORMAT); 119 } 120 121 /** 122 * 得到格式化后的日期,格式为yyyy年MM月dd日,如2009年02月15日 123 * 124 * @param currDate 要格式化的日期 125 * @return 返回格式化后的日期,默认格式为yyyy年MM月dd日,如2009年02月15日 126 * @see #getFormatDate(String, String) 127 */ 128 public static Date getFormatDate_CN(String currDate) { 129 return getFormatDate(currDate, DATE_FORMAT_CN); 130 } 131 132 /** 133 * 根据格式得到格式化后的日期 134 * 135 * @param currDate 要格式化的日期 136 * @param format 日期格式,如yyyy-MM-dd 137 * @return String 返回格式化后的日期,格式由参数format
138 * 定义,如yyyy-MM-dd,如2009-10-15 139 * @see java.text.SimpleDateFormat#format(java.util.Date) 140 */ 141 public static String getFormatDate(java.util.Date currDate, String format) { 142 SimpleDateFormat dtFormatdB = null; 143 try { 144 dtFormatdB = new SimpleDateFormat(format); 145 return dtFormatdB.format(currDate); 146 } catch (Exception e) { 147 dtFormatdB = new SimpleDateFormat(DATE_FORMAT); 148 try { 149 return dtFormatdB.format(currDate); 150 } catch (Exception ex) { 151 } 152 } 153 return null; 154 } 155 156 /** 157 * 得到格式化后的时间,格式为yyyy-MM-dd HH:mm:ss,如2009-10-15 15:23:45 158 * 159 * @param currDate 要格式化的时间 160 * @return String 返回格式化后的时间,默认格式为yyyy-MM-dd HH:mm:ss,如2009-10-15 15:23:45 161 * @see #getFormatDateTime(java.util.Date, String) 162 */ 163 public static String getFormatDateTime(java.util.Date currDate) { 164 return getFormatDateTime(currDate, TIME_FORMAT); 165 } 166 167 /** 168 * 得到格式化后的时间,格式为yyyy-MM-dd HH:mm:ss,如2009-10-15 15:23:45 169 * 170 * @param currDate 要格式环的时间 171 * @return Date 返回格式化后的时间,默认格式为yyyy-MM-dd HH:mm:ss,如2009-10-15 15:23:45 172 * @see #getFormatDateTime(String) 173 */ 174 public static Date getFormatDateTimeToTime(java.util.Date currDate) { 175 return getFormatDateTime(getFormatDateTime(currDate)); 176 } 177 178 /** 179 * 得到格式化后的时间,格式为yyyy-MM-dd HH:mm:ss,如2009-10-15 15:23:45 180 * 181 * @param currDate 要格式化的时间 182 * @return Date 返回格式化后的时间,默认格式为yyyy-MM-dd HH:mm:ss,如2009-10-15 15:23:45 183 * @see #getFormatDateTime(String, String) 184 */ 185 public static Date getFormatDateTime(String currDate) { 186 return getFormatDateTime(currDate, TIME_FORMAT); 187 } 188 189 /** 190 * 得到格式化后的时间,格式为yyyy年MM月dd日 HH:mm:ss,如2009年02月15日 15:23:45 191 * 192 * @param currDate 要格式化的时间 193 * @return String 返回格式化后的时间,默认格式为yyyy年MM月dd日 HH:mm:ss,如2009年02月15日 15:23:45 194 * @see #getFormatDateTime(java.util.Date, String) 195 */ 196 public static String getFormatDateTime_CN(java.util.Date currDate) { 197 return getFormatDateTime(currDate, TIME_FORMAT_CN); 198 } 199 200 /** 201 * 得到格式化后的时间,格式为yyyy年MM月dd日 HH:mm:ss,如2009年02月15日 15:23:45 202 * 203 * @param currDate 要格式化的时间 204 * @return Date 返回格式化后的时间,默认格式为yyyy年MM月dd日 HH:mm:ss,如2009年02月15日 15:23:45 205 * @see #getFormatDateTime_CN(String) 206 */ 207 public static Date getFormatDateTimeToTime_CN(java.util.Date currDate) { 208 return getFormatDateTime_CN(getFormatDateTime_CN(currDate)); 209 } 210 211 /** 212 * 得到格式化后的时间,格式为yyyy年MM月dd日 HH:mm:ss,如2009年02月15日 15:23:45 213 * 214 * @param currDate 要格式化的时间 215 * @return Date 返回格式化后的时间,默认格式为yyyy年MM月dd日 HH:mm:ss,如2009年02月15日 15:23:45 216 * @see #getFormatDateTime(String, String) 217 */ 218 public static Date getFormatDateTime_CN(String currDate) { 219 return getFormatDateTime(currDate, TIME_FORMAT_CN); 220 } 221 222 /** 223 * 根据格式得到格式化后的时间 224 * 225 * @param currDate 要格式化的时间 226 * @param format 时间格式,如yyyy-MM-dd HH:mm:ss 227 * @return String 返回格式化后的时间,格式由参数format
定义,如yyyy-MM-dd HH:mm:ss 228 * @see java.text.SimpleDateFormat#format(java.util.Date) 229 */ 230 public static String getFormatDateTime(java.util.Date currDate, String format) { 231 SimpleDateFormat dtFormatdB = null; 232 try { 233 dtFormatdB = new SimpleDateFormat(format); 234 return dtFormatdB.format(currDate); 235 } catch (Exception e) { 236 dtFormatdB = new SimpleDateFormat(TIME_FORMAT); 237 try { 238 return dtFormatdB.format(currDate); 239 } catch (Exception ex) { 240 } 241 } 242 return null; 243 } 244 245 /** 246 * 根据格式得到格式化后的日期 247 * 248 * @param currDate 要格式化的日期 249 * @param format 日期格式,如yyyy-MM-dd 250 * @return Date 返回格式化后的日期,格式由参数format
251 * 定义,如yyyy-MM-dd,如2009-10-15 252 * @see java.text.SimpleDateFormat#parse(java.lang.String) 253 */ 254 public static Date getFormatDate(String currDate, String format) { 255 SimpleDateFormat dtFormatdB = null; 256 try { 257 dtFormatdB = new SimpleDateFormat(format); 258 return dtFormatdB.parse(currDate); 259 } catch (Exception e) { 260 dtFormatdB = new SimpleDateFormat(DATE_FORMAT); 261 try { 262 return dtFormatdB.parse(currDate); 263 } catch (Exception ex) { 264 } 265 } 266 return null; 267 } 268 269 /** 270 * 根据格式得到格式化后的时间 271 * 272 * @param currDate 要格式化的时间 273 * @param format 时间格式,如yyyy-MM-dd HH:mm:ss 274 * @return Date 返回格式化后的时间,格式由参数format
定义,如yyyy-MM-dd HH:mm:ss 275 * @see java.text.SimpleDateFormat#parse(java.lang.String) 276 */ 277 public static Date getFormatDateTime(String currDate, String format) { 278 SimpleDateFormat dtFormatdB = null; 279 try { 280 dtFormatdB = new SimpleDateFormat(format); 281 return dtFormatdB.parse(currDate); 282 } catch (Exception e) { 283 dtFormatdB = new SimpleDateFormat(TIME_FORMAT); 284 try { 285 return dtFormatdB.parse(currDate); 286 } catch (Exception ex) { 287 } 288 } 289 return null; 290 } 291 292 /** 293 * @param time Seconds 传入参数 秒 294 * @return 返回 格式 hh:mm:ss 秒 295 */ 296 public static String getFormatHourAndMinuteTime(long time) { 297 if (time < 60) { 298 return String.valueOf(time); 299 } 300 if (time < 60 * 60) { 301 int seconds = (int) (time % 60l); 302 int minutes = (int) (time / (60l)); 303 return String.valueOf(minutes) + ":" + (seconds < 10 ? ("0" + String.valueOf(seconds)) : String.valueOf(seconds)); 304 } 305 int seconds = (int) (time % 60l); 306 int minutes = (int) ((time / 60l) % 60l); 307 int hours = (int) (time / (60l * 60l)); 308 return hours + ":" + (minutes < 10 ? ("0" + String.valueOf(minutes)) : String.valueOf(minutes)) + ":" 309 + (seconds < 10 ? ("0" + String.valueOf(seconds)) : String.valueOf(seconds)); 310 } 311 312 /** 313 * 得到本日的上月时间 如果当日为2007-9-1,那么获得2007-8-1 314 */ 315 public static String getDateBeforeMonth() { 316 Calendar cal = Calendar.getInstance(); 317 cal.add(Calendar.MONTH, -1); 318 return getFormatDate(cal.getTime(), DATE_FORMAT); 319 } 320 321 /** 322 * 得到本日的前几个月时间 如果number=2当日为2007-9-1,那么获得2007-7-1 323 */ 324 public static String getDateBeforeMonth(int number) { 325 Calendar cal = Calendar.getInstance(); 326 cal.add(Calendar.MONTH, -number); 327 return getFormatDate(cal.getTime(), DATE_FORMAT); 328 } 329 330 public static long getDaysOfDates(Date first, Date second) { 331 Date d1 = getFormatDateTime(getFormatDate(first), DATE_FORMAT); 332 Date d2 = getFormatDateTime(getFormatDate(second), DATE_FORMAT); 333 334 long mils = d1.getTime() - d2.getTime(); 335 336 return mils / (TIME_DAY_MILLISECOND); 337 } 338 339 /** 340 * 获得两个Date型日期之间相差的天数(第2个减第1个) 341 * first, Date second 342 * 343 * @return int 相差的天数 344 */ 345 public static int getDaysBetweenDates(Date first, Date second) { 346 Date d1 = getFormatDateTime(getFormatDate(first), DATE_FORMAT); 347 Date d2 = getFormatDateTime(getFormatDate(second), DATE_FORMAT); 348 349 Long mils = (d2.getTime() - d1.getTime()) / (TIME_DAY_MILLISECOND); 350 351 return mils.intValue(); 352 } 353 354 /** 355 * 获得两个Date型日期之间相差的小时数(第2个减第1个) 356 *357 * first, Date second 358 * 359 * @return int 相差的小时数 360 */ 361 public static int getHoursBetweenDates(Date first, Date second) { 362 363 Date d1 = getFormatDateTime(getFormatDate(first), DATE_FORMAT); 364 Date d2 = getFormatDateTime(getFormatDate(second), DATE_FORMAT); 365 366 Long mils = (d2.getTime() - d1.getTime()) / (TIME_HOUR_MILLISECOND); 367 368 return mils.intValue(); 369 370 } 371 372 public static int getSecondsBetweenDates(Date first, Date second) { 373 Long mils = (second.getTime() - first.getTime()) / (TIME_SECONDS_MILLISECOND); 374 return mils.intValue(); 375 } 376 377 /** 378 * 获得两个String型日期之间相差的天数(第2个减第1个) 379 *
380 * first, String second 381 * 382 * @return int 相差的天数 383 */ 384 public static int getDaysBetweenDates(String first, String second) { 385 Date d1 = getFormatDateTime(first, DATE_FORMAT); 386 Date d2 = getFormatDateTime(second, DATE_FORMAT); 387 388 Long mils = (d2.getTime() - d1.getTime()) / (TIME_DAY_MILLISECOND); 389 390 return mils.intValue(); 391 } 392 393 /** 394 * @return 获取两个Date之间的天数的列表 395 */ 396 public static List
getDaysListBetweenDates(Date first, Date second) { 397 List dateList = new ArrayList (); 398 Date d1 = getFormatDateTime(getFormatDate(first), DATE_FORMAT); 399 Date d2 = getFormatDateTime(getFormatDate(second), DATE_FORMAT); 400 if (d1.compareTo(d2) > 0) { 401 return dateList; 402 } 403 do { 404 dateList.add(d1); 405 d1 = getDateBeforeOrAfter(d1, 1); 406 } while (d1.compareTo(d2) <= 0); 407 return dateList; 408 } 409 410 public static String getDateBeforeDay() { 411 Calendar cal = Calendar.getInstance(); 412 cal.add(Calendar.DAY_OF_YEAR, -1); 413 return getFormatDate(cal.getTime(), DATE_FORMAT); 414 } 415 416 /** 417 * 得到格式化后的当前系统日期,格式为yyyy-MM-dd,如2009-10-15 418 * 419 * @return String 返回格式化后的当前服务器系统日期,格式为yyyy-MM-dd,如2009-10-15 420 * @see #getFormatDate(java.util.Date) 421 */ 422 public static String getCurrDateStr() { 423 return getFormatDate(getCurrDate()); 424 } 425 426 /** 427 * 得到格式化后的当前系统日期,格式为yyyy-MM,如2009-10 428 * 429 * @return String 返回格式化后的当前服务器系统日期,格式为yyyy-MM,如2009-10 430 * @see #getFormatDate(java.util.Date) 431 */ 432 public static String getCurrDateMonthStr() { 433 return getFormatMonth(getCurrDate()); 434 } 435 436 437 public static int getCurrDateHour() { 438 Calendar cal = Calendar.getInstance(); 439 440 return cal.get(Calendar.HOUR_OF_DAY); 441 } 442 443 /** 444 * 得到格式化后的当前系统时间,格式为yyyy-MM-dd HH:mm:ss,如2009-10-15 15:23:45 445 * 446 * @return String 返回格式化后的当前服务器系统时间,格式为yyyy-MM-dd HH:mm:ss,如2009-10-15 447 * 15:23:45 448 * @see #getFormatDateTime(java.util.Date) 449 */ 450 public static String getCurrDateTimeStr() { 451 return getFormatDateTime(getCurrDate()); 452 } 453 454 /** 455 * 得到格式化后的当前系统日期,格式为yyyy年MM月dd日,如2009年02月15日 456 * 457 * @return String 返回当前服务器系统日期,格式为yyyy年MM月dd日,如2009年02月15日 458 * @see #getFormatDate(java.util.Date, String) 459 */ 460 public static String getCurrDateStr_CN() { 461 return getFormatDate(getCurrDate(), DATE_FORMAT_CN); 462 } 463 464 /** 465 * 得到格式化后的当前系统时间,格式为yyyy年MM月dd日 HH:mm:ss,如2009年02月15日 15:23:45 466 * 467 * @return String 返回格式化后的当前服务器系统时间,格式为yyyy年MM月dd日 HH:mm:ss,如2009年02月15日 468 * 15:23:45 469 * @see #getFormatDateTime(java.util.Date, String) 470 */ 471 public static String getCurrDateTimeStr_CN() { 472 return getFormatDateTime(getCurrDate(), TIME_FORMAT_CN); 473 } 474 475 /** 476 * 得到系统当前日期的前或者后几天 477 * 478 * @param iDate 如果要获得前几天日期,该参数为负数; 如果要获得后几天日期,该参数为正数 479 * @return Date 返回系统当前日期的前或者后几天 480 * @see java.util.Calendar#add(int, int) 481 */ 482 public static Date getDateBeforeOrAfter(int iDate) { 483 Calendar cal = Calendar.getInstance(); 484 cal.add(Calendar.DAY_OF_MONTH, iDate); 485 return cal.getTime(); 486 } 487 488 /** 489 * 得到日期的前或者后几天 490 * 491 * @param iDate 如果要获得前几天日期,该参数为负数; 如果要获得后几天日期,该参数为正数 492 * @return Date 返回参数 curDate
定义日期的前或者后几天 493 * @see java.util.Calendar#add(int, int) 494 */ 495 public static Date getDateBeforeOrAfter(Date curDate, int iDate) { 496 Calendar cal = Calendar.getInstance(); 497 cal.setTime(curDate); 498 cal.add(Calendar.DAY_OF_MONTH, iDate); 499 return cal.getTime(); 500 } 501 502 /** 503 * 得到格式化后的月份,格式为yyyy-MM,如2009-02 504 * 505 * @param currDate 要格式化的日期 506 * @return String 返回格式化后的月份,格式为yyyy-MM,如2009-02 507 * @see #getFormatDate(java.util.Date, String) 508 */ 509 public static String getFormatMonth(java.util.Date currDate) { 510 return getFormatDate(currDate, MONTH_FORMAT); 511 } 512 513 /** 514 * 得到格式化后的日,格式为yyyyMMdd,如20090210 515 * 516 * @param currDate 要格式化的日期 517 * @return String 返回格式化后的日,格式为yyyyMMdd,如20090210 518 * @see #getFormatDate(java.util.Date, String) 519 */ 520 public static String getFormatDay(java.util.Date currDate) { 521 return getFormatDate(currDate, DAY_FORMAT); 522 } 523 524 public static String getFormatTime(java.util.Date currDate) { 525 return getFormatDate(currDate, TIME_FORMAT_NUM); 526 } 527 528 /** 529 * 得到格式化后的当月第一天,格式为yyyy-MM-dd,如2009-10-01 530 *531 * 要格式化的日期 532 * 533 * @return String 返回格式化后的当月第一天,格式为yyyy-MM-dd,如2009-10-01 534 * @see java.util.Calendar#getMinimum(int) 535 * @see #getFormatDate(java.util.Date, String) 536 */ 537 public static String getFirstDayOfMonth() { 538 Calendar cal = Calendar.getInstance(); 539 int firstDay = cal.getMinimum(Calendar.DAY_OF_MONTH); 540 cal.set(Calendar.DAY_OF_MONTH, firstDay); 541 return getFormatDate(cal.getTime(), DATE_FORMAT); 542 } 543 544 /** 545 * 得到格式化后的下月第一天,格式为yyyy-MM-dd,如2009-10-01 546 *
547 * 要格式化的日期 548 * 549 * @return String 返回格式化后的下月第一天,格式为yyyy-MM-dd,如2009-10-01 550 * @see java.util.Calendar#getMinimum(int) 551 * @see #getFormatDate(java.util.Date, String) 552 */ 553 public static String getFirstDayOfNextMonth() { 554 Calendar cal = Calendar.getInstance(); 555 cal.add(Calendar.MONTH, +1); 556 int firstDay = cal.getMinimum(Calendar.DAY_OF_MONTH); 557 cal.set(Calendar.DAY_OF_MONTH, firstDay); 558 return getFormatDate(cal.getTime(), DATE_FORMAT); 559 } 560 561 /** 562 * 得到格式化后的当月第一天,格式为yyyy-MM-dd,如2009-10-01 563 * 564 * @param currDate 要格式化的日期 565 * @return String 返回格式化后的当月第一天,格式为yyyy-MM-dd,如2009-10-01 566 * @see java.util.Calendar#getMinimum(int) 567 * @see #getFormatDate(java.util.Date, String) 568 */ 569 public static String getFirstDayOfMonth(Date currDate) { 570 Calendar cal = Calendar.getInstance(); 571 cal.setTime(currDate); 572 int firstDay = cal.getMinimum(Calendar.DAY_OF_MONTH); 573 cal.set(Calendar.DAY_OF_MONTH, firstDay); 574 return getFormatDate(cal.getTime(), DATE_FORMAT); 575 } 576 577 /** 578 * 得到格式化后的当月最后一天,格式为yyyy-MM-dd,如2009-10-28 579 * 580 * @param currDate 要格式化的日期 581 * @return String 返回格式化后的当月最后一天,格式为yyyy-MM-dd,如2009-10-28 582 * @see java.util.Calendar#getMinimum(int) 583 * @see #getFormatDate(java.util.Date, String) 584 */ 585 public static String getLastDayOfMonth(Date currDate) { 586 Calendar cal = Calendar.getInstance(); 587 cal.setTime(currDate); 588 int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); 589 cal.set(Calendar.DAY_OF_MONTH, lastDay); 590 return getFormatDate(cal.getTime(), DATE_FORMAT); 591 } 592 593 /** 594 * 得到格式化后的当月最后一天,格式为yyyy-MM-dd,如2009-10-28 595 *
596 * 要格式化的日期 597 * 598 * @return String 返回格式化后的当月最后一天,格式为yyyy-MM-dd,如2009-10-28 599 * @see java.util.Calendar#getMinimum(int) 600 * @see #getFormatDate(java.util.Date, String) 601 */ 602 public static String getLastDayOfMonth() { 603 Calendar cal = Calendar.getInstance(); 604 int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); 605 cal.set(Calendar.DAY_OF_MONTH, lastDay); 606 return getFormatDate(cal.getTime(), DATE_FORMAT); 607 } 608 609 /** 610 * 得到日期的前或者后几小时 611 * 612 * @param iHour 如果要获得前几小时日期,该参数为负数; 如果要获得后几小时日期,该参数为正数 613 * @return Date 返回参数
curDate
定义日期的前或者后几小时 614 * @see java.util.Calendar#add(int, int) 615 */ 616 public static Date getDateBeforeOrAfterHours(Date curDate, int iHour) { 617 Calendar cal = Calendar.getInstance(); 618 cal.setTime(curDate); 619 cal.add(Calendar.HOUR_OF_DAY, iHour); 620 return cal.getTime(); 621 } 622 623 /** 624 * 判断日期是否在当前周内 625 * 626 * @param curDate 627 * @param compareDate 628 * @return 629 */ 630 public static boolean isSameWeek(Date curDate, Date compareDate) { 631 if (curDate == null || compareDate == null) { 632 return false; 633 } 634 635 Calendar calSun = Calendar.getInstance(); 636 calSun.setTime(getFormatDateToDate(curDate)); 637 calSun.set(Calendar.DAY_OF_WEEK, 1); 638 639 Calendar calNext = Calendar.getInstance(); 640 calNext.setTime(calSun.getTime()); 641 calNext.add(Calendar.DATE, 7); 642 643 Calendar calComp = Calendar.getInstance(); 644 calComp.setTime(compareDate); 645 if (calComp.after(calSun) && calComp.before(calNext)) { 646 return true; 647 } else { 648 return false; 649 } 650 } 651 652 public static boolean isSameDay(Date currentDate, Date compareDate) { 653 if (currentDate == null || compareDate == null) { 654 return false; 655 } 656 String current = getFormatDate(currentDate); 657 String compare = getFormatDate(compareDate); 658 if (current.equals(compare)) { 659 return true; 660 } 661 return false; 662 } 663 664 /** 665 * 时间查询时,结束时间的 23:59:59 666 */ 667 public static String addDateEndfix(String datestring) { 668 if ((datestring == null) || datestring.equals("")) { 669 return null; 670 } 671 return datestring + " 23:59:59"; 672 } 673 674 /** 675 * 返回格式化的日期 676 *677 * 格式"yyyy-MM-dd 23:59:59"; 678 * 679 * @return 680 */ 681 public static Date getFormatDateEndfix(String dateStr) { 682 dateStr = addDateEndfix(dateStr); 683 return getFormatDateTime(dateStr); 684 } 685 686 /** 687 * 返回格式化的日期 688 * 689 * @param datePre 格式"yyyy-MM-dd HH:mm:ss"; 690 * @return 691 */ 692 public static Date formatEndTime(String datePre) { 693 if (datePre == null) 694 return null; 695 String dateStr = addDateEndfix(datePre); 696 return getFormatDateTime(dateStr); 697 } 698 699 // date1加上compday天数以后的日期与当前时间比较,如果大于当前时间返回true,否则false 700 public static Boolean compareDay(Date date1, int compday) { 701 if (date1 == null) 702 return false; 703 Date dateComp = getDateBeforeOrAfter(date1, compday); 704 Date nowdate = new Date(); 705 if (dateComp.after(nowdate)) 706 return true; 707 else 708 return false; 709 } 710 711 /** 712 * 进行时段格式转换,对于输入的48位的01串,将进行如下操作: