DateUtil时间工具类
1 package utils; 2 3 import java.text.ParseException; 4 import java.text.SimpleDateFormat; 5 import java.util.Calendar; 6 import java.util.Date; 7 import java.util.GregorianCalendar; 8 9 public final class DateUtil{ 10 11 /** 默认的年月日 */ 12 public static final String defaultPattern = "yyyy-MM-dd"; 13 14 /** hour12HMSPattern年月日 时分秒 12小时制*/ 15 public static final String hour12HMSPattern = "yyyy-MM-dd hh:mm:ss"; 16 17 /** hour12HMPattern年月日 时分 12小时制*/ 18 public static final String hour12HMPattern = "yyyy-MM-dd hh:mm"; 19 20 /** hour12HPattern年月日 时 12小时制*/ 21 public static final String hour12HPattern = "yyyy-MM-dd hh"; 22 23 /** hour24HMSPattern年月日 时分秒 24小时制 */ 24 public static final String hour24HMSPattern = "yyyy-MM-dd HH:mm:ss"; 25 26 /** hour24HMPattern年月日 时分 24小时制*/ 27 public static final String hour24HMPattern = "yyyy-MM-dd HH:mm"; 28 29 /** hour24HPattern年月日 时 24小时制*/ 30 public static final String hour24HPattern = "yyyy-MM-dd HH"; 31 32 public static String daysBetween(Date startDate, Date endDate) { 33 float d = endDate.getTime() - startDate.getTime(); 34 float dd = d / 86400000f; 35 int ddd = (int)dd; 36 37 float hh = (dd - ddd) * 24; 38 int hhh = (int)hh; 39 40 float mm = (hh - hhh) * 60; 41 int mmm = (int)mm; 42 43 float ss = (mm - mmm) * 60; 44 int sss = (int)ss; 45 return ddd + "天" + hhh + "小时" + mmm + "分" + sss + "秒"; 46 } 47 48 /** 49 * 返回预设Format的当前日期字符串 50 */ 51 public static String getToday() { 52 Date today = new Date(); 53 return format(today); 54 } 55 56 public static String getYestoday() { 57 Calendar cal1 = Calendar.getInstance(); 58 cal1.setTime(new Date()); 59 cal1.add(Calendar.DATE, -1); 60 return format(cal1.getTime()); 61 } 62 63 public static String getTheDayBeforeYestoday() { 64 Calendar cal1 = Calendar.getInstance(); 65 cal1.setTime(new Date()); 66 cal1.add(Calendar.DATE, -2); 67 return format(cal1.getTime()); 68 } 69 70 public static String getPreviousDay3() { 71 Calendar cal1 = Calendar.getInstance(); 72 cal1.setTime(new Date()); 73 cal1.add(Calendar.DATE, -3); 74 return format(cal1.getTime()); 75 } 76 77 public static String getPreviousDay4() { 78 Calendar cal1 = Calendar.getInstance(); 79 cal1.setTime(new Date()); 80 cal1.add(Calendar.DATE, -4); 81 return format(cal1.getTime()); 82 } 83 84 /** 85 * 用预设Format格式化Date成字符串 86 */ 87 public static String format(Date date) { 88 return format(date, defaultPattern); 89 } 90 91 /** 92 * 使用参数Format格式化Date成字符串 93 */ 94 public static String format(Date date, String pattern) { 95 String returnValue = ""; 96 97 if (date != null) { 98 SimpleDateFormat df = new SimpleDateFormat(pattern); 99 returnValue = df.format(date); 100 } 101 102 return (returnValue); 103 } 104 105 /** 106 * 使用预设格式将字符串转为Date 107 */ 108 public static Date parse(String strDate) throws ParseException { 109 return parse(strDate, defaultPattern); 110 } 111 112 public static Date parse(String strDate, String pattern) 113 throws ParseException { 114 SimpleDateFormat df = new SimpleDateFormat(pattern); 115 return df.parse(strDate); 116 } 117 118 /** 119 * 在日期上增加数个整月 120 */ 121 public static Date addMonth(Date date, int n) { 122 Calendar cal = Calendar.getInstance(); 123 cal.setTime(date); 124 cal.add(Calendar.MONTH, n); 125 return cal.getTime(); 126 } 127 128 /** 129 * 在日期上增加日 130 */ 131 public static Date addDay(Date date, int n) { 132 Calendar cal = Calendar.getInstance(); 133 cal.setTime(date); 134 cal.add(Calendar.DATE, n); 135 return cal.getTime(); 136 } 137 138 public static String formatDateTime(Date date) { 139 SimpleDateFormat outFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 140 return outFormat.format(date); 141 } 142 143 @SuppressWarnings("static-access") 144 public static String getEndOfMonth(String year, String month) { 145 Calendar cal = Calendar.getInstance(); 146 cal.set(cal.YEAR, Integer.parseInt(year)); 147 cal.set(cal.MONTH, Integer.parseInt(month) - 1); 148 return cal.getActualMaximum(cal.DAY_OF_MONTH) + ""; 149 } 150 151 public static String addDays(String sdate, int n) throws ParseException 152 { 153 Calendar cal1 = Calendar.getInstance(); 154 cal1.setTime(parse(sdate, defaultPattern)); 155 cal1.add(Calendar.DATE, n); 156 return format(cal1.getTime()); 157 158 } 159 160 public static String getFirstOfMonth() throws ParseException { 161 Calendar cal1 = Calendar.getInstance(); 162 cal1.setTime(new Date()); 163 cal1.set(5, 1); 164 return format(cal1.getTime()); 165 166 } 167 168 public static String getFirstOfMonth(String sDate) throws ParseException { 169 Calendar cal1 = Calendar.getInstance(); 170 cal1.setTime(parse(sDate, defaultPattern)); 171 cal1.set(5, 1); 172 return format(cal1.getTime()); 173 174 } 175 176 /** 177 * 获取年 178 * 179 * @param sdate 180 * @return String 181 */ 182 public static String getYear(String sdate) { 183 String[] date = sdate.split("-"); 184 return date[0]; 185 } 186 187 /** 188 * 获取月 189 * 190 * @param sdate 191 * @return String 192 */ 193 public static String getMonth(String sdate) { 194 String[] date = sdate.split("-"); 195 return date[1]; 196 } 197 198 public static String getCurrentYear() { 199 Calendar cale = Calendar.getInstance(); 200 return Integer.toString(cale.get(Calendar.YEAR)); 201 } 202 203 public static String getCurrentMonth() { 204 Calendar cale = Calendar.getInstance(); 205 int month = cale.get(Calendar.MONTH); 206 month++; 207 String sMonth = Integer.toString(month); 208 if (month < 10) 209 sMonth = "0" + month; 210 return sMonth; 211 } 212 213 /** 214 * 获取天 215 * 216 * @param sdate 217 * @return String 218 */ 219 public static String getDay(String sdate) { 220 String[] date = sdate.split("-"); 221 return date[2]; 222 } 223 224 public static String getFullDate(String date) { 225 if (date != null && date.length() == 1) 226 return "0" + date; 227 return date; 228 } 229 230 public static String getSimpleDateString(String sdate) { 231 return sdate.replace("-", ""); 232 } 233 234 //把日期从字符弄转成日期型 235 public static Date convertStringToDate(String pattern, String strDate) 236 throws ParseException { 237 Date aDate = null; 238 aDate = parse(strDate, pattern); 239 return aDate; 240 } 241 242 //根据指定格式得到当前日期的字符串 243 public static String getTodayDate(String aMask){ 244 Date date = new Date(); 245 return getDateTime(aMask,date); 246 } 247 248 //根据指定格式得到指定日期的字符串 249 public static String getDateTime(String aMask, Date aDate) { 250 SimpleDateFormat df = null; 251 String returnValue = ""; 252 df = new SimpleDateFormat(aMask); 253 returnValue = df.format(aDate); 254 return (returnValue); 255 } 256 257 public static int getYear() { 258 Calendar c = Calendar.getInstance(); 259 int yy = c.get(Calendar.YEAR); 260 return yy; 261 } 262 263 public static int getMonth() { 264 Calendar c = Calendar.getInstance(); 265 int month = c.get(Calendar.MONTH); 266 return month+1; 267 } 268 269 public static int getDate() { 270 Calendar c = Calendar.getInstance(); 271 int date = c.get(Calendar.DATE); 272 return date; 273 } 274 275 public static int getHour() { 276 Calendar c = Calendar.getInstance(); 277 int hour = c.get(Calendar.HOUR_OF_DAY); 278 return hour; 279 } 280 281 public static int getSecond() { 282 Calendar c = Calendar.getInstance(); 283 int second = c.get(Calendar.SECOND); 284 return second; 285 } 286 287 public static int getMinute() { 288 Calendar c = Calendar.getInstance(); 289 int minute = c.get(Calendar.MINUTE); 290 return minute; 291 } 292 293 public static String getCurDateTime() { 294 return getCurDate() + " " + getCurTime(); 295 } 296 297 public static String getCurDate() { 298 String fullDate = getCurYearMonth(); 299 int temp = getDate(); 300 if(temp < 10){ 301 fullDate += "-0" + temp; 302 }else{ 303 fullDate += "-" + temp; 304 } 305 return fullDate; 306 } 307 308 public static String getCurYearMonth() { 309 String fullDate = String.valueOf(getYear()); 310 int temp = getMonth(); 311 if(temp < 10){ 312 fullDate += "-0" + temp; 313 }else{ 314 fullDate += "-" + temp; 315 } 316 return fullDate; 317 } 318 319 public static String getCurTime() { 320 String time = getCurHourMinute(); 321 int temp = getSecond(); 322 if(temp < 10){ 323 time += ":0" + temp; 324 }else{ 325 time += ":" + temp; 326 } 327 return time; 328 } 329 330 public static String getCurHourMinute() { 331 String time; 332 int temp = getHour(); 333 if(temp < 10){ 334 time = "0" + temp + ":"; 335 }else{ 336 time = temp + ":"; 337 } 338 temp = getMinute(); 339 if(temp < 10){ 340 time += "0" + temp; 341 }else{ 342 time += temp; 343 } 344 return time; 345 } 346 /** 347 * 348 * @Description: 获取当前时间 349 * @param @return 350 * @return StringBuffer 351 * @throws 352 * @author ningpeng 353 * @date 2016年1月8日 354 */ 355 public static StringBuffer getNow() 356 { 357 Date date = new Date(); 358 Calendar c = new GregorianCalendar(); 359 c.setTime(date); 360 int year = c.get(Calendar.YEAR); 361 int month = c.get(Calendar.MONTH)+1; 362 int day = c.get(Calendar.DATE); 363 int hour = c.get(Calendar.HOUR_OF_DAY); 364 int minute = c.get(Calendar.MINUTE); 365 int seconds = c.get(Calendar.SECOND); 366 StringBuffer buff = new StringBuffer(); 367 buff.append(year).append(month).append(day).append(hour).append(minute).append(seconds).toString(); 368 return buff; 369 } 370 371 public static String DateFormat(Date date) { 372 Calendar c=Calendar.getInstance(); 373 c.setTime(date); 374 c.get(java.util.Calendar.HOUR_OF_DAY); 375 String pattern="yyyy-MM-dd"; 376 if(c.get(java.util.Calendar.HOUR_OF_DAY)!=0){ 377 pattern="yyyy-MM-dd hh"; 378 }else if(c.get(java.util.Calendar.MINUTE)!=0){ 379 pattern="yyyy-MM-dd hh:mm"; 380 }else if(c.get(java.util.Calendar.SECOND)!=0){ 381 pattern="yyyy-MM-dd hh:mm:ss"; 382 } 383 return new SimpleDateFormat(pattern).format(date); 384 } 385 386 public static void main(String[] args){ 387 System.out.println(getMonth()); 388 } 389 }