|
时 间 记 忆 |
<< < 2018 - 5 > >>
日 |
一 |
二 |
三 |
四 |
五 |
六 |
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
|
|
|
日期格式化工具 |
[ 2017-5-22 9:20:00 | By: 我家超超会发光 ] |
/* * Created on 2004-9-30 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package com.hljw.util;
import java.text.*; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import java.text.SimpleDateFormat;
/** * <p> * Title: * </p> * <p> * De***ion: * </p> * <p> * Copyright: Copyright (c) 2003 * </p> * <p> * Company: * </p> * * @author not attributable * @version 1.0 */
public class UncDate {
public static String nowDate() { return formatDateTime(new Date(), "yyyyMMdd"); } public static String shortDate(Date date) { return formatDateTime(date, "yyyy-MM-dd"); }
public static String shortDate(String date) { return formatDateTime(parseDate(date), "yyyy-MM-dd"); }
public static String shortMonth(String date) { return formatDateTime(parseDate(date), "M-dd"); }
public static String shortDateYmd(Date date) { return formatDateTime(date, "yyyy年MM月dd日"); }
public static String shortTime(Date dateTime) { return shortDate(dateTime); }
public static String middleTime(Date dateTime) { return formatDateTime(dateTime, "yyyy-MM-dd HH:mm"); } public static String middleTime(long dateTime) { return formatDateTime(new Date(dateTime), "yyyy-MM-dd HH:mm"); }
public static String longTime(Date dateTime) { return formatDateTime(dateTime, "yyyy-MM-dd HH:mm:ss"); }
public static String time(Date date) { return formatDateTime(date, "HH:mm:ss"); }
public static String time(String date) { return formatDateTime(parseDate(date), "HH:mm:ss"); }
public static String formatDateTime(Date dateTime, String pattern) { if (dateTime == null) return null;
if (pattern == null || pattern.equals("")) { // Default pattern = "yyyy-MM-dd HH:mm:ss"; } SimpleDateFormat dateFmt = new SimpleDateFormat(pattern); return dateFmt.format(dateTime); }
/** * 将含有日期的字符串转化为Date型。 * * @param dateString * 含有日期的字符串。格式为:yyyy-MM-dd * @return */ public static Date parseDate(String dateString) { return parseDate(dateString, '-'); }
/** * 将含有日期的字符串转化为Date型。 * * @param dateString * 含有日期的字符串。使用separator作为分隔符。 * @param separator * 年月日间分隔符 * @return */
public static Date parseDate(String dateString, char separator) { Date date = null;
if (dateString == null || dateString.length() == 0) return null; SimpleDateFormat sdf = new SimpleDateFormat("yyyy" + separator + "MM" + separator + "dd"); try { date = sdf.parse(dateString); } catch (ParseException ex) {
} finally {
} return date; }
/** * 将含有日期时间的字符串转化为Timestamp型。 * * @param timeString * 含有日期时间的字符串。格式为:yyyy-MM-dd HH:mm:ss * @return */ public static Date parseTimestamp(String timeString) { Date time = null; String format1 = "yyyy-MM-dd HH:mm:ss"; String format2 = "yyyy-MM-dd HH:mm"; String format3 = "yyyy-MM-dd";
try { time = parseFormattedTimestamp(timeString, format1); } catch (ParseException ex) { try { time = parseFormattedTimestamp(timeString, format2); } catch (ParseException ex2) { try { time = parseFormattedTimestamp(timeString, format3); } catch (ParseException ex3) { // }
} }
return time; }
/** * 截掉日期的小时分秒部分 * * @param dateTime */ public static void trim(Calendar dateTime) { dateTime.set(Calendar.HOUR_OF_DAY, 0); dateTime.set(Calendar.MINUTE, 0); dateTime.set(Calendar.SECOND, 0); dateTime.set(Calendar.MILLISECOND, 0); }
/** * 设置日期 * * @param dateTime * 需要设置的日期类 * @param year * 年份(四位的实际年份) * @param month * 月份(1-12) * @param date * 日期 */ public static void setDate(Calendar dateTime, int year, int month, int date) { dateTime.set(Calendar.YEAR, year); dateTime.set(Calendar.MONTH, month - 1); dateTime.set(Calendar.DAY_OF_MONTH, date); }
/** * 设置日期 * * @param dateTime * 需要设置的日期类 * @param year * 年份(四位的实际年份) * @param month * 月份(1-12) * @param date * 日期 * @deprecated JDK1.2 不推荐使用Date类进行日期的设定。请使用java.util.Calendar。 */ public static void setDate(Date dateTime, int year, int month, int date) { dateTime.setYear(year - 1900); dateTime.setMonth(month - 1); dateTime.setDate(date); }
/** * 设置时间 * * @param dateTime * 需要设置的日期类 * @param hour * 小时(0-23) * @param minute * 分(0-59) * @param second * 秒(0-59) * @param millisecond * 毫秒(0-999) */ public static void setTime(Calendar dateTime, int hour, int minute, int second, int millisecond) { dateTime.set(Calendar.HOUR_OF_DAY, hour); dateTime.set(Calendar.MINUTE, minute); dateTime.set(Calendar.SECOND, second); dateTime.set(Calendar.MILLISECOND, millisecond); }
/** * 设置时间 * * @param dateTime * 需要设置的日期类 * @param hour * 小时(0-23) * @param minute * 分(0-59) * @param second * 秒(0-59) */ public static void setTime(Calendar dateTime, int hour, int minute, int second) { setTime(dateTime, hour, minute, second, 0); }
/** * 设置时间 * * @param dateTime * 需要设置的日期类 * @param hour * 小时(0-23) * @param minute * 分(0-59) * @param second * 秒(0-59) * @deprecated JDK1.2 不推荐使用Date类进行日期的设定。请使用java.util.Calendar。 */ public static void setTime(Date dateTime, int hour, int minute, int second) { dateTime.setHours(hour); dateTime.setMinutes(minute); dateTime.setSeconds(second); }
private static Date parseFormattedTimestamp(String timeString, String format) throws ParseException { Date date = null;
if (timeString == null) return null; SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.parse(timeString); }
/** * 获得没有中划线的时间 - 上传文件生成 文件夹名 * * @return */ public static String getNoThroughDate() { return UncDate.shortDate(new Date()).replaceAll("-", ""); }
/** * 添加排定日期的指定段的数字,如:增加年、月、日、小时、分钟等段的数字 * * @param date * 要增加指定数据的日期 * @param field * 参数参考Calendar * @see Calendar * @param addnum * 增加数 * @return */ public static Date addDateField(Date date, int field, int addnum) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(field, addnum); return cal.getTime(); }
/** * 根据要添加的 * * @param date * 要增加指定数据的日期 * @param field * 参数参考Calendar * @see Calendar * @param addnum * 增加数 * @return */ public static Date addDateField(int field, int addnum) { Calendar cal = Calendar.getInstance(); cal.add(field, addnum); return cal.getTime(); }
/** * 根据出生日期计算年龄 * * @param birthDay * @return 未来日期返回0 * @throws Exception */ public static int getAge(Date birthDay) throws Exception { Calendar cal = Calendar.getInstance(); if (cal.before(birthDay)) { return 0; } int yearNow = cal.get(Calendar.YEAR); int monthNow = cal.get(Calendar.MONTH); int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH); cal.setTime(birthDay); int yearBirth = cal.get(Calendar.YEAR); int monthBirth = cal.get(Calendar.MONTH); int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH); int age = yearNow - yearBirth; if (monthNow <= monthBirth) { if (monthNow == monthBirth) { if (dayOfMonthNow < dayOfMonthBirth) { age--; } } else { age--; } } return age < 0 ? 0 : age; }
/** * 根据出生日期计算年龄 * * @param strBirthDay * 字符串型日期 * @param format * 日期格式 * @return 未来日期返回0 * @throws Exception */ public static int getAge(String strBirthDay, String format) throws Exception { DateFormat df = new SimpleDateFormat(format); Date birthDay = df.parse(strBirthDay); return getAge(birthDay); } public static Date getDate(String strDay, String format) throws Exception { DateFormat df = new SimpleDateFormat(format); return df.parse(strDay); }
/** * 根据年龄计算出生日期 * * @param age * @return * @throws Exception */ public static Date getBirthday(int age) throws Exception { Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR) - age; int month = cal.get(Calendar.MONTH) + 1; int day = cal.get(Calendar.DAY_OF_MONTH); return UncDate.parseDate(year + "-" + month + "-" + day); }
/** * 根据日期获得星期 * * @param date * @return */ public static String getWeekOfDate(Date date) { String[] weekDaysName = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; String[] weekDaysCode = { "0", "1", "2", "3", "4", "5", "6" }; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int intWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; return weekDaysName[intWeek]; }
public static int getDateDay(Date sDate, Date eDate) { try { SimpleDateFormat dateFmt = new SimpleDateFormat("yyyy-MM-dd"); Date sate = dateFmt.parse(shortDate(sDate)); Date eate = dateFmt.parse(shortDate(eDate)); return getDateCount(sate, eate); } catch (ParseException e) { e.printStackTrace(); } return 0; } /** * 计算两个日志之间相隔天数 * * @param sDate * 开始日期 * @param eDate * 结束日期 * @return */ public static int getDateCount(Date sDate, Date eDate) { Calendar c = Calendar.getInstance(); c.setTime(sDate); long ls = c.getTimeInMillis(); c.setTime(eDate); long le = c.getTimeInMillis(); int getCnt = (int) ((le - ls) / (24 * 3600 * 1000)); return getCnt; }
/** * 根据配置查询时间段 * * @param value * @return */ public static List<Date> getSelectDateByConfig(String value) { List<Date> listDate = new ArrayList<Date>(); Calendar cle = Calendar.getInstance(); if (UtilAPI.isNull(value) || "0".equals(value)) { listDate.add(null); listDate.add(null); } // 当天 else if ("1".equals(value)) { cle.add(Calendar.DATE, -1); listDate.add(cle.getTime()); listDate.add(new Date()); } // 3天 else if ("2".equals(value)) { cle.add(Calendar.DATE, -3); listDate.add(cle.getTime()); listDate.add(new Date()); } // 5天 else if ("3".equals(value)) { cle.add(Calendar.DATE, -5); listDate.add(cle.getTime()); listDate.add(new Date()); } // 一周 else if ("4".equals(value)) { cle.add(Calendar.DATE, -7); listDate.add(cle.getTime()); listDate.add(new Date()); } // 半个月 else if ("5".equals(value)) { cle.add(Calendar.DATE, -15); listDate.add(cle.getTime()); listDate.add(new Date()); } // 一个月 else if ("6".equals(value)) { cle.add(Calendar.MONTH, -1); listDate.add(cle.getTime()); listDate.add(new Date()); } // 三个月 else if ("7".equals(value)) { cle.add(Calendar.MONTH, -3); listDate.add(cle.getTime()); listDate.add(new Date()); } // 半年 else if ("8".equals(value)) { cle.add(Calendar.MONTH, -6); listDate.add(cle.getTime()); listDate.add(new Date()); } // 一年 else if ("9".equals(value)) { cle.add(Calendar.YEAR, -1); listDate.add(cle.getTime()); listDate.add(new Date()); } return listDate; } }
|
|
|
|
|