package com.common.time; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * * 功能描述: * * @author Administrator * @Date Jul 19, 2008 * @Time 9:47:53 AM * @version 1.0 */ public class DateUtil { public static Date date = null; public static DateFormat dateFormat = null; public static Calendar calendar = null; /** * 功能描述:格式化日期 * * @param dateStr * String 字符型日期 * @param format * String 格式 * @return Date 日期 */ public static Date parseDate(String dateStr, String format) { try { dateFormat = new SimpleDateFormat(format); String dt = dateStr.replaceAll("-", "/"); if ((!dt.equals("")) && (dt.length() < format.length())) { dt += format.substring(dt.length()).replaceAll("[YyMmDdHhSs]", "0"); } date = (Date) dateFormat.parse(dt); } catch (Exception e) { } return date; } /** * 功能描述:格式化日期 * * @param dateStr * String 字符型日期:YYYY-MM-DD 格式 * @return Date */ public static Date parseDate(String dateStr) { return parseDate(dateStr, "yyyy/MM/dd"); } /** * 功能描述:格式化输出日期 * * @param date * Date 日期 * @param format * String 格式 * @return 返回字符型日期 */ public static String format(Date date, String format) { String result = ""; try { if (date != null) { dateFormat = new SimpleDateFormat(format); result = dateFormat.format(date); } } catch (Exception e) { } return result; } /** * 功能描述: * * @param date * Date 日期 * @return */ public static String format(Date date) { return format(date, "yyyy/MM/dd"); } /** * 功能描述:返回年份 * * @param date * Date 日期 * @return 返回年份 */ public static int getYear(Date date) { calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.YEAR); } /** * 功能描述:返回月份 * * @param date * Date 日期 * @return 返回月份 */ public static int getMonth(Date date) { calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.MONTH) + 1; } /** * 功能描述:返回日份 * * @param date * Date 日期 * @return 返回日份 */ public static int getDay(Date date) { calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.DAY_OF_MONTH); } /** * 功能描述:返回小时 * * @param date * 日期 * @return 返回小时 */ public static int getHour(Date date) { calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.HOUR_OF_DAY); } /** * 功能描述:返回分钟 * * @param date * 日期 * @return 返回分钟 */ public static int getMinute(Date date) { calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.MINUTE); } /** * 返回秒钟 * * @param date * Date 日期 * @return 返回秒钟 */ public static int getSecond(Date date) { calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.SECOND); } /** * 功能描述:返回毫秒 * * @param date * 日期 * @return 返回毫秒 */ public static long getMillis(Date date) { calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.getTimeInMillis(); } /** * 功能描述:返回字符型日期 * * @param date * 日期 * @return 返回字符型日期 yyyy/MM/dd 格式 */ public static String getDate(Date date) { return format(date, "yyyy/MM/dd"); } /** * 功能描述:返回字符型时间 * * @param date * Date 日期 * @return 返回字符型时间 HH:mm:ss 格式 */ public static String getTime(Date date) { return format(date, "HH:mm:ss"); } /** * 功能描述:返回字符型日期时间 * * @param date * Date 日期 * @return 返回字符型日期时间 yyyy/MM/dd HH:mm:ss 格式 */ public static String getDateTime(Date date) { return format(date, "yyyy/MM/dd HH:mm:ss"); } /** * 功能描述:日期相加 * * @param date * Date 日期 * @param day * int 天数 * @return 返回相加后的日期 */ public static Date addDate(Date date, int day) { calendar = Calendar.getInstance(); long millis = getMillis(date) + ((long) day) * 24 * 3600 * 1000; calendar.setTimeInMillis(millis); return calendar.getTime(); } /** * 功能描述:日期相减 * * @param date * Date 日期 * @param date1 * Date 日期 * @return 返回相减后的日期 */ public static int diffDate(Date date, Date date1) { return (int) ((getMillis(date) - getMillis(date1)) / (24 * 3600 * 1000)); } /** * 功能描述:取得指定月份的第一天 * * @param strdate * String 字符型日期 * @return String yyyy-MM-dd 格式 */ public static String getMonthBegin(String strdate) { date = parseDate(strdate); return format(date, "yyyy-MM") + "-01"; } /** * 功能描述:取得指定月份的最后一天 * * @param strdate * String 字符型日期 * @return String 日期字符串 yyyy-MM-dd格式 */ public static String getMonthEnd(String strdate) { date = parseDate(getMonthBegin(strdate)); calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.MONTH, 1); calendar.add(Calendar.DAY_OF_YEAR, -1); return formatDate(calendar.getTime()); } /** * 功能描述:常用的格式化日期 * * @param date * Date 日期 * @return String 日期字符串 yyyy-MM-dd格式 */ public static String formatDate(Date date) { return formatDateByFormat(date, "yyyy-MM-dd"); } /** * 功能描述:以指定的格式来格式化日期 * * @param date * Date 日期 * @param format * String 格式 * @return String 日期字符串 */ public static String formatDateByFormat(Date date, String format) { String result = ""; if (date != null) { try { SimpleDateFormat sdf = new SimpleDateFormat(format); result = sdf.format(date); } catch (Exception ex) { ex.printStackTrace(); } } return result; } public static void main(String[] args) { Date d = new Date(); // System.out.println(d.toString()); // System.out.println(formatDate(d).toString()); // System.out.println(getMonthBegin(formatDate(d).toString())); // System.out.println(getMonthBegin("2008/07/19")); // System.out.println(getMonthEnd("2008/07/19")); System.out.println(addDate(d,15).toString()); } }
最近下载更多
3334004690 LV10
6月6日
wanglei92 LV2
2023年6月26日
linmou LV8
2023年3月19日
康日澜 LV9
2023年3月18日
快乐的程序员 LV25
2023年1月21日
xiexie666c56t LV1
2022年11月23日
17782780328 LV1
2022年7月21日
ming_123_9715 LV23
2022年7月17日
981352576 LV4
2022年5月3日
wl010101 LV9
2022年4月24日
最近浏览更多
3334004690 LV10
6月6日
long123_356 LV7
5月18日
wanglei92 LV2
2023年6月26日
东北虎啸 LV3
2023年4月23日
泓鼎168 LV20
2023年4月4日
linmou LV8
2023年3月19日
康日澜 LV9
2023年3月18日
旋风龙卷风
2023年3月15日
暂无贡献等级
快乐的程序员 LV25
2023年1月21日
xiexie666c56t LV1
2022年11月23日