1 import java.sql.Timestamp; 2 import java.text.ParsePosition; 3 import java.text.SimpleDateFormat; 4 import java.util.Date; 5 6 import com.ttsoft.framework.util.DateUtil; 7 8 /** 9 * Title: 时间获取 10 * Description: 当前时间 11 * Copyright: Copyright 2010 12 * Company: 13 * @author jiq 14 * @version 1.0 15 */ 16 public class XJPDateUtil extends DateUtil { 17 public static final String[] months = { "一月", "二月", "三月", "四月", "五月", "六月", 18 "七月", "八月", "九月", "十月", "十一月", "十二月", }; 19 20 public static final String[] quarters = { "一季度", "二季度", "三季度", "四季度" }; 21 22 public XJPDateUtil() { 23 } 24 25 /** 26 * 获取日期字符串。 27 * 28 * <pre> 29 * 日期字符串格式: yyyyMMdd 30 * 其中: 31 * yyyy 表示4位年。 32 * MM 表示2位月。 33 * dd 表示2位日。 34 * </pre> 35 * 36 * @return String "yyyyMMdd"格式的日期字符串。 37 */ 38 public static String getDate() { 39 SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); 40 41 return formatter.format(new Date()); 42 } 43 44 /** 45 * 获取当前年度字符串。 46 * 47 * <pre> 48 * 日期字符串格式: yyyy 49 * 其中: 50 * yyyy 表示4位年。 51 * </pre> 52 * 53 * @return String "yyyy"格式的当前年度字符串。 54 */ 55 public static String getNowYear() { 56 SimpleDateFormat formatter = new SimpleDateFormat("yyyy"); 57 58 return formatter.format(new Date()); 59 } 60 61 /** 62 * 获取当前月度字符串。 63 * 64 * <pre> 65 * 日期字符串格式: MM 66 * 其中: 67 * MM 表示4位年。 68 * </pre> 69 * 70 * @return String "yyyy"格式的当前月度字符串。 71 */ 72 public static String getNowMonth() { 73 SimpleDateFormat formatter = new SimpleDateFormat("MM"); 74 75 return formatter.format(new Date()); 76 } 77 78 /** 79 * 获取当前月度字符串。 80 * 81 * <pre> 82 * 日期字符串格式: dd 83 * 其中: 84 * dd 表示4位年。 85 * </pre> 86 * 87 * @return String "yyyy"格式的当前月度字符串。 88 */ 89 public static String getNowDay() { 90 SimpleDateFormat formatter = new SimpleDateFormat("dd"); 91 92 return formatter.format(new Date()); 93 } 94 95 /** 96 * 获取日期字符串。 97 * 98 * <pre> 99 * 日期字符串格式: yyyyMMdd 100 * 其中: 101 * yyyy 表示4位年。 102 * MM 表示2位月。 103 * dd 表示2位日。 104 * </pre> 105 * 106 * @param date 107 * 需要转化的日期。 108 * @return String "yyyyMMdd"格式的日期字符串。 109 */ 110 public static String getDate(Date date) { 111 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 112 113 return formatter.format(date); 114 } 115 116 /** 117 * 获取日期字符串。 118 * 119 * <pre> 120 * 日期字符串格式: yyyyMMdd 121 * 其中: 122 * yyyy 表示4位年。 123 * MM 表示2位月。 124 * dd 表示2位日。 125 * </pre> 126 * 127 * @param date 128 * 需要转化的日期。 129 * @return String "yyyyMMdd"格式的日期字符串。 130 */ 131 /** 132 * 将指定的日期字符串转化为日期对象 133 * 134 * @param dateStr 135 * 日期字符串 136 * @return java.util.Date 137 * @roseuid 3F39FE450385 138 */ 139 public static Date getDate(String dateStr) { 140 if (XJPTypeChecker.isDate(dateStr)) { // 日期型 141 SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); 142 try { 143 java.util.Date date = df.parse(dateStr); 144 return date; 145 } catch (Exception ex) { 146 Logger.write("日期格式不符合或者日期为空!请检查!"); 147 return null; 148 } // end try - catch 149 } else if (XJPTypeChecker.isDatetime(dateStr)) { // 日期时间型 150 SimpleDateFormat df = new SimpleDateFormat( 151 "yyyy-MM-dd HH:mm:ss.SSS"); 152 try { 153 java.util.Date date = df.parse(dateStr); 154 return date; 155 } catch (Exception ex) { 156 return null; 157 } // end try - catch 158 } // end if 159 return null; 160 } 161 162 /** 163 * 获取日期字符串。 164 * 165 * <pre> 166 * 日期字符串格式: yyyy-MM-dd 167 * 其中: 168 * yyyy 表示4位年。 169 * MM 表示2位月。 170 * dd 表示2位日。 171 * </pre> 172 * 173 * @return String "yyyy-MM-dd"格式的日期字符串。 174 */ 175 public static String getHyphenDate() { 176 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 177 178 return formatter.format(new Date()); 179 } 180 181 /** 182 * 获取日期字符串。 183 * 184 * <pre> 185 * 日期字符串格式: yyyy-MM-dd 186 * 其中: 187 * yyyy 表示4位年。 188 * MM 表示2位月。 189 * dd 表示2位日。 190 * </pre> 191 * 192 * @param date 193 * 需要转化的日期。 194 * @return String "yyyy-MM-dd"格式的日期字符串。 195 */ 196 public static String getHyphenDate(Date date) { 197 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 198 199 return formatter.format(date); 200 } 201 202 /** 203 * 将"yyyyMMdd"格式的日期字符串转换为日期对象。 204 * 205 * @param source 206 * 日期字符串。 207 * @return Date 日期对象。 208 */ 209 public static Date parsePlainDate(String source) { 210 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); 211 212 return sdf.parse(source, new ParsePosition(0)); 213 } 214 215 /** 216 * 将“yyyy-MM-dd”格式的日期字符串转换为日期对象。 217 * 218 * @param source 219 * 日期字符串。 220 * @return Date 日期对象。 221 */ 222 public static Date parseHyphenDate(String source) { 223 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 224 225 return sdf.parse(source, new ParsePosition(0)); 226 } 227 228 /** 229 * 将指定格式的日期字符串转换为日期对象。 230 * 231 * @param source 232 * 日期字符串。 233 * @param pattern 234 * 模式。 235 * @return Date 日期对象。 236 */ 237 public static Date parseDate(String source, String pattern) { 238 SimpleDateFormat sdf = new SimpleDateFormat(pattern); 239 240 return sdf.parse(source, new ParsePosition(0)); 241 } 242 243 /** 244 * 将“yyyy-MM-dd”格式的日期字符串转换为“yyyyMMdd”格式的日期字符串。 245 * 246 * @param source 247 * 日期字符串。 248 * @return String "yyyymmdd"格式的日期字符串。 249 */ 250 public static String toPlainDate(String source) { 251 Date date = parseHyphenDate(source); 252 SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); 253 254 return formatter.format(date); 255 } 256 257 /** 258 * 将“yyyyMMdd”格式的日期字符串转换为“yyyy-MM-dd”格式的日期字符串。 259 * 260 * @param source 261 * 日期字符串。 262 * @return String "yyyy-MM-dd"格式的日期字符串。 263 */ 264 public static String toHyphenDate(String source) { 265 Date date = parsePlainDate(source); 266 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 267 268 return formatter.format(date); 269 } 270 271 /** 272 * 获取时间戳,将日期对象转换为时间戳类型。 273 * 274 * @param date 275 * 日期对象 276 * @return Timestamp 时间戳 277 */ 278 public static Timestamp getTimestamp(Date date) { 279 return new Timestamp(date.getTime()); 280 } 281 282 /** 283 * 获取时间戳,将当前日期转换为时间戳类型。 284 * 285 * @return Timestamp 时间戳 286 */ 287 public static Timestamp getTimestamp() { 288 return new Timestamp(new Date().getTime()); 289 } 290 291 /** 292 * 将“yyyyMMdd”格式的日期字符串转换为Timestamp类型的对象。 293 * 294 * @param source 295 * 日期字符串 296 * @return Timestamp 时间戳 297 */ 298 public static Timestamp parseTimestamp(String source) { 299 Date date = parsePlainDate(source); 300 301 return getTimestamp(date); 302 } 303 304 /** 305 * 获得年度周期 <br> 306 * Example:<br> 307 * XJPDateUtil.getPeriodYear("20040229" , -1);<br> 308 * XJPDateUtil.getPeriodYear("20040228" , -1);<br> 309 * XJPDateUtil.getPeriodYear("20020230" , 2);<br> 310 * 311 * @param source 312 * 时间串 313 * @param yearPeriod 314 * 年度周期 -1代表本时间的上一年度,以次类推。 315 * @return String 时间。 316 */ 317 public static String getPeriodYear(String source, int yearPeriod) { 318 int p = Integer.parseInt(source.substring(0, 4)) + yearPeriod; 319 String newYear = String.valueOf(p) 320 + source.substring(4, source.length()); 321 Date date = parsePlainDate(newYear); 322 String s = getDate(date); 323 int ny = Integer.parseInt(s); 324 int sy = Integer.parseInt(newYear); 325 326 while (ny > sy) { 327 sy--; 328 ny = Integer.parseInt(getDate(parsePlainDate(String.valueOf(sy)))); 329 } 330 331 return String.valueOf(sy); 332 } 333 334 /** 335 * 获取当前日期和时间 336 * 337 * @return String 338 */ 339 public static String getCurrentDateStr() { 340 Date date = new Date(); 341 String str = null; 342 SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd HH:mm:ss"); 343 str = df.format(date); 344 return str; 345 } 346 347 /** 348 * 日期相加 349 * 350 * @param day 351 * 天数 352 * @return 返回相加后的日期 353 */ 354 public static String addDate(int day) { 355 java.util.Calendar c = java.util.Calendar.getInstance(); 356 357 c.setTimeInMillis(System.currentTimeMillis() + ((long) day) * 24 * 3600 358 * 1000); 359 SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd HH:mm:ss"); 360 return df.format(c.getTime()); 361 } 362 363 /** 364 * 返回毫秒 365 * 366 * @param date 367 * 日期 368 * @return 返回毫秒 369 */ 370 public static long getMillis(java.util.Date date) { 371 java.util.Calendar c = java.util.Calendar.getInstance(); 372 c.setTime(date); 373 return c.getTimeInMillis(); 374 } 375 /** 376 * 获取当前日期和时间 377 * @param format 日期格式 例:yyyy-MM-dd hh:mm 378 * @return String 379 */ 380 public static String getNowDate(String format) { 381 Date date = new Date(); 382 String str = null; 383 SimpleDateFormat df = new SimpleDateFormat(format); 384 str = df.format(date); 385 return str; 386 } 387 /** 388 * 将strmon的日期减小一个月 389 * @param mon 390 * @return 391 */ 392 public static String getReduceMonDate(String strmon) { 393 if (strmon != null && !strmon.equals("")) { 394 Date mon = parseHyphenDate(strmon); 395 mon.setMonth(mon.getMonth() - 1); 396 return getHyphenDate(mon); 397 } else { 398 return ""; 399 } 400 } 401 public static String getTimeStr(String dateStr){ 402 Date date=getDate(dateStr); 403 String str = null; 404 SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss"); 405 str = df.format(date); 406 return str; 407 } 408 public static String getTimeStr(){ 409 String str=""; 410 SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss"); 411 str = df.format(new Date()); 412 return str; 413 } 414 }
转载于http://blog.csdn.net/thl331860203/article/details/5912435