Web开发中常用的时间处理Java工具类
发布时间:2020-12-15 00:14:36 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import static java.util.Calendar.HOUR_OF_DAY;import static java.util.Calendar.MILLISECOND;import static java.util.Calendar.MINUTE;import sta
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 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:[email?protected] * 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); } /** * 返回这一天的最晚时候 * * @param date * @return */ public static Date getLastest(Date date) { return parseTime(date,23,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<String> strList = new ArrayList<String>(); 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 milliSecond) { cal.set(HOUR_OF_DAY,hourOfDay); cal.set(MINUTE,minute); cal.set(SECOND,second); cal.set(MILLISECOND,milliSecond); } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |