dateutil java_日期工具类 - DateUtil.java

1 importjava.text.DateFormat;2 importjava.text.ParseException;3 importjava.text.SimpleDateFormat;4 importjava.util.ArrayList;5 importjava.util.Calendar;6 importjava.util.Date;7 importjava.util.GregorianCalendar;8 importjava.util.List;9 importorg.apache.commons.lang.StringUtils;10

11 /**

12 * 日期工具类13 *14 */

15 public classDateUtil {16

17 //默认日期格式

18 public static final String DATE_DEFAULT_FORMAT = "yyyy-MM-dd";19

20 //默认时间格式

21 public static final String DATETIME_DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";22

23 public static final String TIME_DEFAULT_FORMAT = "HH:mm:ss";24

25 //日期格式化

26 private static DateFormat dateFormat = null;27

28 //时间格式化

29 private static DateFormat dateTimeFormat = null;30

31 private static DateFormat timeFormat = null;32

33 private static Calendar gregorianCalendar = null;34

35 static{36 dateFormat = newSimpleDateFormat(DATE_DEFAULT_FORMAT);37 dateTimeFormat = newSimpleDateFormat(DATETIME_DEFAULT_FORMAT);38 timeFormat = newSimpleDateFormat(TIME_DEFAULT_FORMAT);39 gregorianCalendar = newGregorianCalendar();40 }41

42 /**

43 * 日期格式化yyyy-MM-dd44 *45 *@paramdate46 *@return

47 */

48 public staticDate formatDate(String date, String format) {49 try{50 return newSimpleDateFormat(format).parse(date);51 } catch(ParseException e) {52 e.printStackTrace();53 }54 return null;55 }56

57 /**

58 * 日期格式化yyyy-MM-dd59 *60 *@paramdate61 *@return

62 */

63 public staticString getDateFormat(Date date) {64 returndateFormat.format(date);65 }66

67 /**

68 * 日期格式化yyyy-MM-dd HH:mm:ss69 *70 *@paramdate71 *@return

72 */

73 public staticString getDateTimeFormat(Date date) {74 returndateTimeFormat.format(date);75 }76

77 /**

78 * 时间格式化79 *80 *@paramdate81 *@returnHH:mm:ss82 */

83 public staticString getTimeFormat(Date date) {84 returntimeFormat.format(date);85 }86

87 /**

88 * 日期格式化89 *90 *@paramdate91 *@param格式类型92 *@return

93 */

94 public staticString getDateFormat(Date date, String formatStr) {95 if(StringUtils.isNotBlank(formatStr)) {96 return newSimpleDateFormat(formatStr).format(date);97 }98 return null;99 }100

101 /**

102 * 日期格式化103 *104 *@paramdate105 *@return

106 */

107 public staticDate getDateFormat(String date) {108 try{109 returndateFormat.parse(date);110 } catch(ParseException e) {111 e.printStackTrace();112 }113 return null;114 }115

116 /**

117 * 时间格式化118 *119 *@paramdate120 *@return

121 */

122 public staticDate getDateTimeFormat(String date) {123 try{124 returndateTimeFormat.parse(date);125 } catch(ParseException e) {126 e.printStackTrace();127 }128 return null;129 }130

131 /**

132 * 获取当前日期(yyyy-MM-dd)133 *134 *@paramdate135 *@return

136 */

137 public staticDate getNowDate() {138 return DateUtil.getDateFormat(dateFormat.format(newDate()));139 }140

141 /**

142 * 获取当前日期星期一日期143 *144 *@returndate145 */

146 public staticDate getFirstDayOfWeek() {147 gregorianCalendar.setFirstDayOfWeek(Calendar.MONDAY);148 gregorianCalendar.setTime(newDate());149 gregorianCalendar.set(Calendar.DAY_OF_WEEK, gregorianCalendar.getFirstDayOfWeek()); //Monday

150 returngregorianCalendar.getTime();151 }152

153 /**

154 * 获取当前日期星期日日期155 *156 *@returndate157 */

158 public staticDate getLastDayOfWeek() {159 gregorianCalendar.setFirstDayOfWeek(Calendar.MONDAY);160 gregorianCalendar.setTime(newDate());161 gregorianCalendar.set(Calendar.DAY_OF_WEEK, gregorianCalendar.getFirstDayOfWeek() + 6); //Monday

162 returngregorianCalendar.getTime();163 }164

165 /**

166 * 获取日期星期一日期167 *168 *@param指定日期169 *@returndate170 */

171 public staticDate getFirstDayOfWeek(Date date) {172 if (date == null) {173 return null;174 }175 gregorianCalendar.setFirstDayOfWeek(Calendar.MONDAY);176 gregorianCalendar.setTime(date);177 gregorianCalendar.set(Calendar.DAY_OF_WEEK, gregorianCalendar.getFirstDayOfWeek()); //Monday

178 returngregorianCalendar.getTime();179 }180

181 /**

182 * 获取日期星期一日期183 *184 *@param指定日期185 *@returndate186 */

187 public staticDate getLastDayOfWeek(Date date) {188 if (date == null) {189 return null;190 }191 gregorianCalendar.setFirstDayOfWeek(Calendar.MONDAY);192 gregorianCalendar.setTime(date);193 gregorianCalendar.set(Calendar.DAY_OF_WEEK, gregorianCalendar.getFirstDayOfWeek() + 6); //Monday

194 returngregorianCalendar.getTime();195 }196

197 /**

198 * 获取当前月的第一天199 *200 *@returndate201 */

202 public staticDate getFirstDayOfMonth() {203 gregorianCalendar.setTime(newDate());204 gregorianCalendar.set(Calendar.DAY_OF_MONTH, 1);205 returngregorianCalendar.getTime();206 }207

208 /**

209 * 获取当前月的最后一天210 *211 *@return

212 */

213 public staticDate getLastDayOfMonth() {214 gregorianCalendar.setTime(newDate());215 gregorianCalendar.set(Calendar.DAY_OF_MONTH, 1);216 gregorianCalendar.add(Calendar.MONTH, 1);217 gregorianCalendar.add(Calendar.DAY_OF_MONTH, -1);218 returngregorianCalendar.getTime();219 }220

221 /**

222 * 获取指定月的第一天223 *224 *@paramdate225 *@return

226 */

227 public staticDate getFirstDayOfMonth(Date date) {228 gregorianCalendar.setTime(date);229 gregorianCalendar.set(Calendar.DAY_OF_MONTH, 1);230 returngregorianCalendar.getTime();231 }232

233 /**

234 * 获取指定月的最后一天235 *236 *@paramdate237 *@return

238 */

239 public staticDate getLastDayOfMonth(Date date) {240 gregorianCalendar.setTime(date);241 gregorianCalendar.set(Calendar.DAY_OF_MONTH, 1);242 gregorianCalendar.add(Calendar.MONTH, 1);243 gregorianCalendar.add(Calendar.DAY_OF_MONTH, -1);244 returngregorianCalendar.getTime();245 }246

247 /**

248 * 获取日期前一天249 *250 *@paramdate251 *@return

252 */

253 public staticDate getDayBefore(Date date) {254 gregorianCalendar.setTime(date);255 int day =gregorianCalendar.get(Calendar.DATE);256 gregorianCalendar.set(Calendar.DATE, day - 1);257 returngregorianCalendar.getTime();258 }259

260 /**

261 * 获取日期后一天262 *263 *@paramdate264 *@return

265 */

266 public staticDate getDayAfter(Date date) {267 gregorianCalendar.setTime(date);268 int day =gregorianCalendar.get(Calendar.DATE);269 gregorianCalendar.set(Calendar.DATE, day + 1);270 returngregorianCalendar.getTime();271 }272

273 /**

274 * 获取当前年275 *276 *@return

277 */

278 public static intgetNowYear() {279 Calendar d =Calendar.getInstance();280 returnd.get(Calendar.YEAR);281 }282

283 /**

284 * 获取当前月份285 *286 *@return

287 */

288 public static intgetNowMonth() {289 Calendar d =Calendar.getInstance();290 return d.get(Calendar.MONTH) + 1;291 }292

293 /**

294 * 获取当月天数295 *296 *@return

297 */

298 public static intgetNowMonthDay() {299 Calendar d =Calendar.getInstance();300 returnd.getActualMaximum(Calendar.DATE);301 }302

303 /**

304 * 获取时间段的每一天305 *306 *@param开始日期307 *@param结算日期308 *@return日期列表309 */

310 public static ListgetEveryDay(Date startDate, Date endDate) {311 if (startDate == null || endDate == null) {312 return null;313 }314 //格式化日期(yy-MM-dd)

315 startDate =DateUtil.getDateFormat(DateUtil.getDateFormat(startDate));316 endDate =DateUtil.getDateFormat(DateUtil.getDateFormat(endDate));317 List dates = new ArrayList();318 gregorianCalendar.setTime(startDate);319 dates.add(gregorianCalendar.getTime());320 while (gregorianCalendar.getTime().compareTo(endDate) < 0) {321 //加1天

322 gregorianCalendar.add(Calendar.DAY_OF_MONTH, 1);323 dates.add(gregorianCalendar.getTime());324 }325 returndates;326 }327

328 /**

329 * 获取提前多少个月330 *331 *@parammonty332 *@return

333 */

334 public static Date getFirstMonth(intmonty) {335 Calendar c =Calendar.getInstance();336 c.add(Calendar.MONTH, -monty);337 returnc.getTime();338 }339 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值