java web开发工具类_Java Web开发中常用的时间处理工具类大全

Java Web开发中常用的时间处理工具类大全:

import static java.util.Calendar.HOUR_OF_DAY; import static java.util.Calendar.MILLISECOND; import static java.util.Calendar.MINUTE; import static java.util.Calendar.SECOND;

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.List;

/**

* Copyright (c) 2011 sxgkwei

* Author:sxgkwei

* Email:sxgkwei@gmail.com

* Date: 2012-03-30 13:01:21

* JDK: 1.6.2

*/ public class DateUtil extends org.apache.commons.lang.time.DateUtils {

/**

* 默认的日期格式化样式

*/

public static final String DAY_PATTERN = “yyyy-MM-dd”;

/**

* 默认的时间格式化样式

*/

public static final String TIME_PATTERN = “HH:mm:ss”;

/**

* 将Date格式化成符合默认格式的字符串

*

* @param date

* @return 返回样例:2012-03-29 14:32:23

*/

public static String format(Date date) {

SimpleDateFormat formatTool = new SimpleDateFormat();

formatTool.applyPattern(DAY_PATTERN + ” ” + TIME_PATTERN);

return formatTool.format(date);

}

/**

* 将Date格式化成符合默认日期格式的字符串

*

* @param date

* @return 返回样例:2012-03-29

*/

public static String formatDate(Date date) {

SimpleDateFormat formatTool = new SimpleDateFormat();

formatTool.applyPattern(DAY_PATTERN);

return formatTool.format(date);

}

/**

* 将Date格式化成符合默认时间格式的字符串

*

* @param date

* @return 返回样例:14:32:23

*/

public static String formatTime(Date date) {

SimpleDateFormat formatTool = new SimpleDateFormat();

formatTool.applyPattern(TIME_PATTERN);

return formatTool.format(date);

}

/**

* 按照pattern格式格式化Date

*

* @param date

* @param pattern

* 样例: yyyy/MM/dd

* @return 返回样例:2012/03/29

*/

public static String format(Date date, String pattern) {

SimpleDateFormat formatTool = new SimpleDateFormat();

formatTool.applyPattern(pattern);

return formatTool.format(date);

}

/**

* 将符合默认格式的字符串转换成Date

*

* @param dateValue

* 样例:2012-03-29 14:32:23

* @return

* @throws ParseException

*/

public static Date parse(String dateValue) throws ParseException {

SimpleDateFormat formatTool = new SimpleDateFormat();

formatTool.applyPattern(DAY_PATTERN + ” ” + TIME_PATTERN);

return formatTool.parse(dateValue);

}

/**

* 将符合默认格式的日期字符串转换成Date

*

* @param dateValue

* 样例:2012-03-29

* @return

* @throws ParseException

*/

public static Date parseDate(String dateValue) throws ParseException {

SimpleDateFormat formatTool = new SimpleDateFormat();

formatTool.applyPattern(DAY_PATTERN);

return formatTool.parse(dateValue);

}

/**

* 将符合pattern格式的dateValue转换成Date

*

* @param dateValue

* 样例:2012/03/29

* @param pattern

* 样例:yyyy/MM/dd

* @return

* @throws ParseException

*/

public static Date parse(String dateValue, String pattern)

throws ParseException {

SimpleDateFormat formatTool = new SimpleDateFormat();

formatTool.applyPattern(pattern);

return formatTool.parse(dateValue);

}

/**

* 返回这一天的最早的时候

*

* @param date

* @return

*/

public static Date getEarliest(Date date) {

return parseTime(date, 0, 0, 0, 0);

}

/**

* 返回这一天的最晚时候

*

* @param date

* @return

*/

public static Date getLastest(Date date) {

return parseTime(date, 23, 59, 59, 999);

}

/**

* 得到指定月的天数

*

* @param year

* @param month

* @return

*/

public static int getMonthLastDay(int year, int month) {

Calendar a = Calendar.getInstance();

a.set(Calendar.YEAR, year);

a.set(Calendar.MONTH, month – 1);

a.set(Calendar.DATE, 1);// 把日期设置为当月第一天 a.roll(Calendar.DATE, -1);// 日期回滚一天,也就是最后一天 int maxDate = a.get(Calendar.DATE);

return maxDate;

}

/**

* 返回指定时间加上num天后的时间

*

* @param date

* @param num

* @return

*/

public static Date add(Date date, int num) {

Calendar a = Calendar.getInstance();

a.setTime(date);

a.add(Calendar.DAY_OF_MONTH, num);

return a.getTime();

}

/**

* 返回false:date=null,date是1970年;其它都返回true

*

* @param date

* @return

*/

public static boolean isNotEmpty(Date date) {

if (date != null) {

Calendar a = Calendar.getInstance();

a.setTime(date);

return a.get(Calendar.YEAR) != 1970;

}

return Boolean.FALSE;

}

/**

* 获得date的小时数0-23

*

* @param date

* @return

*/

public static int getHours(Date date) {

Calendar a = Calendar.getInstance();

a.setTime(date);

return a.get(Calendar.HOUR_OF_DAY);

}

/**

* 获得date是一周的第几天,注意:周日 返回 1,周六 返回 7

*

* @param date

* @return

*/

public static int getDay(Date date) {

Calendar a = Calendar.getInstance();

a.setTime(date);

return a.get(Calendar.DAY_OF_WEEK);

}

/**

* 设定date的时间细节

*

* @param date

* 要设定时间细节的date

* @param hourOfDay

* 0-23

* @param minute

* 0-59

* @param second

* 0-59

* @param milliSecond

* 0-999

* @return

*/

public static Date parseTime(Date date, int hourOfDay, int minute,

int second, int milliSecond) {

Calendar cal = Calendar.getInstance();

cal.setTime(date);

setCalendarTime(cal, hourOfDay, minute, second, milliSecond);

return cal.getTime();

}

/**

* 设定date的时间细节

*

* @param date

* 要设定时间细节的date

* @param timeDetail

* 以:号分隔的24小时制的时间,例:16:23:42:267 或 16(等同于16:00:00:000)

* @return

*/

public static Date parseTime(Date date, String timeDetail) {

List strList = new ArrayList();

strList.addAll(Arrays.asList(timeDetail.split(“:”)));

while (strList.size() < 4) {

strList.add(“0″);

}

return parseTime(date, Integer.parseInt(strList.get(0)),

Integer.parseInt(strList.get(1)),

Integer.parseInt(strList.get(2)),

Integer.parseInt(strList.get(3)));

}

/**

* 指定时间 是否在 当前时间 之后,注:和日期无关

*

* @param time

* 指定的时间, 传入样例:16:23:42:267 或 16(等同于16:00:00:000)

* @return

*/

public static boolean isAfterTime(String time) {

Date date = parseTime(new Date(), time);

return date.after(new Date());

}

/**

* 指定时间 是否在 当前时间 之前,注:和日期无关

*

* @param time

* 指定的时间, 传入样例:16:23:42:267 或 16(等同于16:00:00:000)

* @return

*/

public static boolean isBeforeTime(String time) {

Date date = parseTime(new Date(), time);

return date.before(new Date());

}

private static void setCalendarTime(Calendar cal, int hourOfDay,

int minute, int second, int milliSecond) {

cal.set(HOUR_OF_DAY, hourOfDay);

cal.set(MINUTE, minute);

cal.set(SECOND, second);

cal.set(MILLISECOND, milliSecond);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值