New file |
| | |
| | | /** |
| | | * Copyright (c) 2015-2016, Chill Zhuang 庄骞 (smallchill@163.com). |
| | | * <p> |
| | | * Licensed under the Apache License, Version 2.0 (the "License"); |
| | | * you may not use this file except in compliance with the License. |
| | | * You may obtain a copy of the License at |
| | | * <p> |
| | | * http://www.apache.org/licenses/LICENSE-2.0 |
| | | * <p> |
| | | * Unless required by applicable law or agreed to in writing, software |
| | | * distributed under the License is distributed on an "AS IS" BASIS, |
| | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| | | * See the License for the specific language governing permissions and |
| | | * limitations under the License. |
| | | */ |
| | | package com.dsh.activity.util; |
| | | |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.commons.lang3.time.DateFormatUtils; |
| | | import org.apache.commons.lang3.time.DateUtils; |
| | | |
| | | import java.sql.Timestamp; |
| | | import java.text.DateFormat; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.Objects; |
| | | import java.util.TimeZone; |
| | | |
| | | public class DateUtil { |
| | | |
| | | private static TimeZone tz = TimeZone.getTimeZone("GMT+8"); |
| | | |
| | | /** |
| | | * 获取YYYY格式 |
| | | */ |
| | | public static String getYear() { |
| | | return formatDate(new Date(), "yyyy"); |
| | | } |
| | | |
| | | /** |
| | | * 获取YYYY格式 |
| | | */ |
| | | public static String getYear(Date date) { |
| | | return formatDate(date, "yyyy"); |
| | | } |
| | | |
| | | /** |
| | | * 获取YYYY-MM-DD格式 |
| | | */ |
| | | public static String getDay() { |
| | | return formatDate(new Date(), "yyyy-MM-dd"); |
| | | } |
| | | |
| | | /** |
| | | * 获取YYYY-MM-DD格式 |
| | | */ |
| | | public static String getDay(Date date) { |
| | | return formatDate(date, "yyyy-MM-dd"); |
| | | } |
| | | |
| | | /** |
| | | * 获取YYYYMMDD格式 |
| | | */ |
| | | public static String getDays() { |
| | | return formatDate(new Date(), "yyyyMMdd"); |
| | | } |
| | | |
| | | /** |
| | | * 获取YYYYMMDD格式 |
| | | */ |
| | | public static String getDays(Date date) { |
| | | return formatDate(date, "yyyyMMdd"); |
| | | } |
| | | |
| | | /** |
| | | * 获取YYYY-MM-DD HH:mm:ss格式 |
| | | */ |
| | | public static String getTime() { |
| | | return formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"); |
| | | } |
| | | |
| | | /** |
| | | * 获取YYYY-MM-DD HH:mm:ss.SSS格式 |
| | | */ |
| | | public static String getMsTime() { |
| | | return formatDate(new Date(), "yyyy-MM-dd HH:mm:ss.SSS"); |
| | | } |
| | | |
| | | /** |
| | | * 获取YYYYMMDDHHmmss格式 |
| | | */ |
| | | public static String getAllTime() { |
| | | return formatDate(new Date(), "yyyyMMddHHmmss"); |
| | | } |
| | | |
| | | /** |
| | | * 获取YYYY-MM-DD HH:mm:ss格式 |
| | | */ |
| | | public static String getTime(Date date) { |
| | | return formatDate(date, "yyyy-MM-dd HH:mm:ss"); |
| | | } |
| | | |
| | | public static String formatDate(Date date, String pattern) { |
| | | String formatDate = null; |
| | | if (StringUtils.isNotBlank(pattern)) { |
| | | formatDate = DateFormatUtils.format(date, pattern); |
| | | } else { |
| | | formatDate = DateFormatUtils.format(date, "yyyy-MM-dd"); |
| | | } |
| | | return formatDate; |
| | | } |
| | | |
| | | /** |
| | | * 日期比较,如果s>=e 返回true 否则返回false) |
| | | * |
| | | * @author luguosui |
| | | */ |
| | | public static boolean compareDate(String s, String e) { |
| | | if (parseDate(s) == null || parseDate(e) == null) { |
| | | return false; |
| | | } |
| | | return parseDate(s).getTime() >= parseDate(e).getTime(); |
| | | } |
| | | |
| | | /** |
| | | * 格式化日期 |
| | | */ |
| | | public static Date parseDate(String date) { |
| | | return parse(date, "yyyy-MM-dd"); |
| | | } |
| | | |
| | | /** |
| | | * 格式化日期 |
| | | */ |
| | | public static Date parseTimeMinutes(String date) { |
| | | return parse(date, "yyyy-MM-dd HH:mm"); |
| | | } |
| | | |
| | | /** |
| | | * 格式化日期 |
| | | */ |
| | | public static Date parseTime(String date) { |
| | | return parse(date, "yyyy-MM-dd HH:mm:ss"); |
| | | } |
| | | |
| | | /** |
| | | * 格式化日期 |
| | | */ |
| | | public static Date parse(String date, String pattern) { |
| | | try { |
| | | if (Objects.nonNull(date)) { |
| | | return DateUtils.parseDate(date, pattern); |
| | | } |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 格式化日期 |
| | | */ |
| | | public static String format(Date date, String pattern) { |
| | | return DateFormatUtils.format(date, pattern); |
| | | } |
| | | |
| | | /** |
| | | * 把日期转换为Timestamp |
| | | */ |
| | | public static Timestamp format(Date date) { |
| | | return new Timestamp(date.getTime()); |
| | | } |
| | | |
| | | /** |
| | | * 校验日期是否合法 |
| | | */ |
| | | public static boolean isValidDate(String s) { |
| | | return parse(s, "yyyy-MM-dd HH:mm:ss") != null; |
| | | } |
| | | |
| | | /** |
| | | * 校验日期是否合法 |
| | | */ |
| | | public static boolean isValidDate(String s, String pattern) { |
| | | return parse(s, pattern) != null; |
| | | } |
| | | |
| | | public static int getDiffYear(String startTime, String endTime) { |
| | | DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); |
| | | try { |
| | | int years = (int) (((fmt.parse(endTime).getTime() - fmt.parse( |
| | | startTime).getTime()) / (1000 * 60 * 60 * 24)) / 365); |
| | | return years; |
| | | } catch (Exception e) { |
| | | // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对 |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * <li>功能描述:时间相减得到天数 |
| | | */ |
| | | public static long getDaySub(String beginDateStr, String endDateStr) { |
| | | long day = 0; |
| | | SimpleDateFormat format = new SimpleDateFormat( |
| | | "yyyy-MM-dd"); |
| | | Date beginDate = null; |
| | | Date endDate = null; |
| | | |
| | | try { |
| | | beginDate = format.parse(beginDateStr); |
| | | endDate = format.parse(endDateStr); |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | day = (endDate.getTime() - beginDate.getTime()) / (24 * 60 * 60 * 1000); |
| | | // System.out.println("相隔的天数="+day); |
| | | |
| | | return day; |
| | | } |
| | | |
| | | /** |
| | | * 得到n天之后的日期 |
| | | */ |
| | | public static String getAfterDayDate(String days) { |
| | | int daysInt = Integer.parseInt(days); |
| | | |
| | | Calendar canlendar = Calendar.getInstance(); // java.util包 |
| | | canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动 |
| | | Date date = canlendar.getTime(); |
| | | |
| | | SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | String dateStr = sdfd.format(date); |
| | | |
| | | return dateStr; |
| | | } |
| | | |
| | | /** |
| | | * 得到n天之后是周几 |
| | | */ |
| | | public static String getAfterDayWeek(String days) { |
| | | int daysInt = Integer.parseInt(days); |
| | | |
| | | Calendar canlendar = Calendar.getInstance(); // java.util包 |
| | | canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动 |
| | | Date date = canlendar.getTime(); |
| | | |
| | | SimpleDateFormat sdf = new SimpleDateFormat("E"); |
| | | String dateStr = sdf.format(date); |
| | | |
| | | return dateStr; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 得到系统日期 |
| | | * |
| | | * @return |
| | | */ |
| | | public static Date getDate() { |
| | | TimeZone.setDefault(tz); |
| | | return new Date(); |
| | | } |
| | | |
| | | /** |
| | | * 获取当前毫秒数 |
| | | * |
| | | * @return long |
| | | */ |
| | | public static long getCurMilli() { |
| | | long millisecond = 0; |
| | | Calendar cal = Calendar.getInstance(); |
| | | millisecond = cal.getTimeInMillis(); |
| | | return millisecond; |
| | | } |
| | | |
| | | /** |
| | | * 得到系统Calendar日期 |
| | | * |
| | | * @return |
| | | */ |
| | | public static Calendar getCalendar() { |
| | | TimeZone.setDefault(tz); |
| | | Calendar cal = Calendar.getInstance(); |
| | | return cal; |
| | | } |
| | | |
| | | /** |
| | | * 毫秒转日期时间 |
| | | * |
| | | * @param millisecond |
| | | * @return |
| | | */ |
| | | public static String getDateTime(long millisecond) { |
| | | if (millisecond == 0) { |
| | | millisecond = getCurMilli(); |
| | | } |
| | | SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | Calendar calendar = getCalendar(); |
| | | calendar.setTimeInMillis(millisecond); |
| | | return dateformat.format(calendar.getTime()); |
| | | } |
| | | |
| | | /** |
| | | * 日期转毫秒(加分钟) |
| | | * |
| | | * @param date |
| | | * @return |
| | | */ |
| | | public static long getMillisecond_fz(String date, Integer day) { |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | String newDate = ""; |
| | | if ("".equals(date)) { |
| | | newDate = sdf.format(DateUtil.getDate()); |
| | | } else { |
| | | newDate = getDateTime(Long.parseLong(date)); |
| | | } |
| | | Date dt = null; |
| | | try { |
| | | dt = sdf.parse(newDate); |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | Calendar rightNow = Calendar.getInstance(); |
| | | rightNow.setTime(dt); |
| | | rightNow.add(Calendar.MINUTE, day); |
| | | Date dt1 = rightNow.getTime(); |
| | | return dt1.getTime(); |
| | | } |
| | | |
| | | public static Date addDay(Date paymentTime, int i) { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(paymentTime); |
| | | calendar.add(Calendar.DATE, i); |
| | | return calendar.getTime(); |
| | | } |
| | | } |