package com.zhixiao.zx.global.utils;
import java.sql.Time;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
import org.springframework.test.annotation.SystemProfileValueSource;
/**
* @ClassName: DateUtil
* @Description: 日期转换 工具类
* @date: 2017年11月30日 上午8:59:46
*/
public class DateUtil {
private static final ThreadLocal<SimpleDateFormat> threadLocal = new ThreadLocal<SimpleDateFormat>();
private static final Object object = new Object();
/**
* @fieldName: SECOND
* @fieldType: int
* @Description: 1000 毫秒 = 1秒
*/
public static final int SECOND = 1000;
/**
* @fieldName: MINUTE
* @fieldType: int
* @Description: 一分钟 毫秒
*/
public static final int MINUTE = SECOND * 60;
/**
* @fieldName: HOUR
* @fieldType: int
* @Description: 一小时毫秒
*/
public static final int HOUR = MINUTE * 60;
/**
* @fieldName: DAY
* @fieldType: long
* @Description: 一天毫秒
*/
public static final long DAY = HOUR * 24;
/**
* @fieldName: WEEK
* @fieldType: long
* @Description: 一周毫秒
*/
public static final long WEEK = DAY * 7;
/**
* @fieldName: YEAR
* @fieldType: long
* @Description: 365天毫秒
*/
public static final long YEAR = DAY * 365;
/********************** 日期格式化参数类型 ****************************/
public static final String DATE_FORMAT_UTC = "yyyy-MM-dd'T'HH:mm:ss'Z'";
public static final String DATE_FORMAT_YMDHMS = "yyyy-MM-dd HH:mm:ss";
public static final String DATE_FORMAT_YMDHM = "yyyy-MM-dd HH:mm";
public static final String DATE_FORMAT_YYMMDD = "yy-MM-dd";
public static final String DATE_FORMAT_YYMMDDTWO = "yy.MM.dd";
public static final String DATE_FORMAT_YMD = "yyyy-MM-dd";
public static final String DATE_FORMAT_YMDHMS_X = "yyyy/MM/dd HH:mm:ss";
public static final String DATE_FORMAT_YMDHM_X = "yyyy/MM/dd HH:mm";
public static final String DATE_FORMAT_YMD_X = "yyyy/MM/dd";
public static final String DATE_FORMAT_YYMMDDHHMM_CN = "yy年MM月dd日 HH:mm";
public static final String DATE_FORMAT_YMDHM_CN = "yyyy年MM月dd日 HH:mm";
public static final String DATE_FORMAT_MMDDHHMM_CN = "MM月dd日 HH:mm";
public static final String DATE_FORMAT_MMDD_CN = "MM月dd日";
public static final String DATE_FORMAT_YMDHMSS_NUM = "yyyyMMddHHmmssSSS";
public static final String DATE_FORMAT_YMDHMMS_NUM = "yyyyMMddHHmmss";
public static final String DATE_FORMAT_YMDHMM_NUM = "yyyyMMddHHmm";
public static final String DATE_FORMAT_YMD_NUM = "yyyyMMdd";
private static SimpleDateFormat getDateFormat(String pattern)
throws RuntimeException {
SimpleDateFormat dateFormat = threadLocal.get();
if (dateFormat == null) {
synchronized (object) {
if (dateFormat == null) {
dateFormat = new SimpleDateFormat(pattern);
dateFormat.setLenient(false);
threadLocal.set(dateFormat);
}
}
}
dateFormat.applyPattern(pattern);
return dateFormat;
}
public static String DateToString(Date date, String pattern) {
String dateString = null;
if (date != null) {
try {
dateString = getDateFormat(pattern).format(date);
} catch (Exception e) {
}
}
return dateString;
}
public static Date StringToDate(String date, String pattern) {
Date myDate = null;
if (date != null) {
try {
myDate = getDateFormat(pattern).parse(date);
} catch (Exception e) {
}
}
return myDate;
}
/********************** 日期格式化参数类型结束 ****************************/
private static Calendar calendar = Calendar.getInstance();
private DateUtil(){
}
/**
* @param date 日期
* @param time 时间
* @return Calendar 合并日期和时�?
*/
public static Calendar mergeDateTime(Date date , Time time) {
Calendar cal = Calendar.getInstance();
if(date != null) {
cal.setTime(date);
}
if(time != null) {
Calendar temp = Calendar.getInstance();
temp.setTime(time);
cal.set(Calendar.HOUR_OF_DAY, temp.get(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, temp.get(Calendar.MINUTE));
cal.set(Calendar.SECOND, temp.get(Calendar.SECOND));
cal.set(Calendar.MILLISECOND, temp.get(Calendar.MILLISECOND));
}
return cal;
}
/**
* 得到标准的日期
* @return String
*/
public static String getDateST() {
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_YMD,Locale.CANADA);
return dateFormat.format(new Date());
}
/**
* 得到标准的日期 时间
* @return String
*/
public static String getDateTimeST() {
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_YMDHMS);
return dateFormat.format(new Date());
}
/**
* @Title: getTodayFormat
* @Description: 获取当前 日期
* @date 2017年11月30日 上午10:17:38
* @param format 格式
* @return String
*/
public static String getTodayFormat(String format) {
return getFormatDateTime(new Date(),format);
}
/**
* 得到指定时间的时间日期格式化
* @param date 指定的时间
* @param format 时间日期格式
* @return
*/
public static String getFormatDateTime(Date date , String format) {
DateFormat df = new SimpleDateFormat(format);
return df.format(date);
}
/**
* @Title: getYear
* @Description: 获取当前 年份
* @date 2017年11月30日 上午10:19:13
* @return 年
* @return int
*/
public static int getYear() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
return calendar.get(Calendar.YEAR);
}
/**
* @Title: getMonth
* @Description: 获取 当前月份
* @date 2017年11月30日 上午10:20:11
* @return 月份
* return int
*/
public static int getMonth() {
Calendar calendar = Calendar.getInstance();
Date trialTime = new Date();
calendar.setTime(trialTime);
return calendar.get(Calendar.MONTH) + 1;
}
/**
* @Title: getDate
* @Description: 获取当前日期是 几号
* @date 2017年11月30日 上午10:20:56
* @return 几号
* @return int
*/
public static int getDate() {
Calendar calendar = Calendar.getInstance();
Date trialTime = new Date();
calendar.setTime(trialTime);
return calendar.get(Calendar.DATE);
}
/**
* @Title: getHour
* @Description:获取 当前 时
* @date 2017年11月30日 上午10:24:42
* @return 当前时间
* @return int
*/
public static int getHour() {
Calendar calendar = Calendar.getInstance();
Date trialTime = new Date();
calendar.setTime(trialTime);
return calendar.get(Calendar.HOUR);
}
/**
* @Title: getMinute
* @Description: 获取 当前 分钟
* @date 2017年11月30日 上午10:25:37
* @return 当前 分钟
* @return int
*/
public static int getMinute() {
Calendar calendar = Calendar.getInstance();
Date trialTime = new Date();
calendar.setTime(trialTime);
return calendar.get(Calendar.MINUTE);
}
/**
* @Title: getSecond
* @Description: 获取 当前 秒
* @date 2017年11月30日 上午10:25:56
* @return int
*/
public static int getSecond() {
Calendar calendar = Calendar.getInstance();
Date trialTime = new Date();
calendar.setTime(trialTime);
return calendar.get(Calendar.SECOND);
}
/**
* @Title: getDayOfMonth
* @Description: 获取 当前 日期 是当前月份的 几号
* @date 2017年11月30日 上午10:26:28
* @return 当前月份的 几号
* @return int
*/
public static int getDayOfMonth() {
return getDayOfMonth(new Date());
}
/**
* @Title: getDayOfMonth
* @Description: 得到月中的第几天
* @date 2017年11月30日 上午10:30:32
* @param trialTime
* @return 得到月中的第几天
* @return int
*/
public static int getDayOfMonth(Date date) {
Calendar calendar = Calendar.getInstanc
- 1
- 2
前往页