|
@@ -23,19 +23,75 @@ public class DateUtils extends PropertyEditorSupport {
|
|
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(DateUtils.class);
|
|
private static Logger logger = LoggerFactory.getLogger(DateUtils.class);
|
|
|
|
|
|
- /**
|
|
|
|
- * 以毫秒表示的时间
|
|
|
|
- */
|
|
|
|
|
|
+ public static ThreadLocal<SimpleDateFormat> date_sdf = new ThreadLocal<SimpleDateFormat>() {
|
|
|
|
+ @Override
|
|
|
|
+ protected SimpleDateFormat initialValue() {
|
|
|
|
+ return new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ public static ThreadLocal<SimpleDateFormat> yyyyMMdd = new ThreadLocal<SimpleDateFormat>() {
|
|
|
|
+ @Override
|
|
|
|
+ protected SimpleDateFormat initialValue() {
|
|
|
|
+ return new SimpleDateFormat("yyyyMMdd");
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ public static ThreadLocal<SimpleDateFormat> date_sdf_wz = new ThreadLocal<SimpleDateFormat>() {
|
|
|
|
+ @Override
|
|
|
|
+ protected SimpleDateFormat initialValue() {
|
|
|
|
+ return new SimpleDateFormat("yyyy年MM月dd日");
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ public static ThreadLocal<SimpleDateFormat> time_sdf = new ThreadLocal<SimpleDateFormat>() {
|
|
|
|
+ @Override
|
|
|
|
+ protected SimpleDateFormat initialValue() {
|
|
|
|
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ public static ThreadLocal<SimpleDateFormat> yyyymmddhhmmss = new ThreadLocal<SimpleDateFormat>() {
|
|
|
|
+ @Override
|
|
|
|
+ protected SimpleDateFormat initialValue() {
|
|
|
|
+ return new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ public static ThreadLocal<SimpleDateFormat> short_time_sdf = new ThreadLocal<SimpleDateFormat>() {
|
|
|
|
+ @Override
|
|
|
|
+ protected SimpleDateFormat initialValue() {
|
|
|
|
+ return new SimpleDateFormat("HH:mm");
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ public static ThreadLocal<SimpleDateFormat> datetimeFormat = new ThreadLocal<SimpleDateFormat>() {
|
|
|
|
+ @Override
|
|
|
|
+ protected SimpleDateFormat initialValue() {
|
|
|
|
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ // 以毫秒表示的时间
|
|
private static final long DAY_IN_MILLIS = 24 * 3600 * 1000L;
|
|
private static final long DAY_IN_MILLIS = 24 * 3600 * 1000L;
|
|
private static final long HOUR_IN_MILLIS = 3600 * 1000L;
|
|
private static final long HOUR_IN_MILLIS = 3600 * 1000L;
|
|
private static final long MINUTE_IN_MILLIS = 60 * 1000L;
|
|
private static final long MINUTE_IN_MILLIS = 60 * 1000L;
|
|
private static final long SECOND_IN_MILLIS = 1000L;
|
|
private static final long SECOND_IN_MILLIS = 1000L;
|
|
-
|
|
|
|
-
|
|
|
|
- public static String getNowHour(Date date){
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 格式常量
|
|
|
|
+ */
|
|
|
|
+ public final static String SHORT_FORMAT = "yyyyMMdd";
|
|
|
|
+ public final static String LONG_FORMAT = "yyyyMMddHHmmss";
|
|
|
|
+ public final static String YEARHOUR_FORMAT = "yyyyMMddHH";
|
|
|
|
+ public final static String WEB_FORMAT = "yyyy-MM-dd";
|
|
|
|
+ public final static String TIME_FORMAT = "HHmmss";
|
|
|
|
+ public final static String COLON_TIME_FORMAT = "HH:mm:ss";
|
|
|
|
+ public final static String CHINESEDT_FORMAT = "yyyy年MM月dd日";
|
|
|
|
+ public final static String NEW_FORMAT = "yyyy-MM-dd HH:mm:ss";
|
|
|
|
+ public final static String WEB_FORMAT_ALL = "yyyy MM dd HH mm ss";
|
|
|
|
+ public final static String SECOND_FORMAT = "yyyy-MM-dd HH";
|
|
|
|
+ public final static String GREGORIAN_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
|
|
|
|
+ public final static String NOMS_GREGORIAN_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
|
|
|
|
+
|
|
|
|
+ public static String getNowHour(Date date) {
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH");
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH");
|
|
return simpleDateFormat.format(date);
|
|
return simpleDateFormat.format(date);
|
|
}
|
|
}
|
|
|
|
+
|
|
public static Date getNowDate() throws ParseException {
|
|
public static Date getNowDate() throws ParseException {
|
|
SimpleDateFormat dsdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
SimpleDateFormat dsdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
String nowDate = getNowDate("yyyy-MM-dd");
|
|
String nowDate = getNowDate("yyyy-MM-dd");
|
|
@@ -59,6 +115,13 @@ public class DateUtils extends PropertyEditorSupport {
|
|
return dsdf.format(parse);
|
|
return dsdf.format(parse);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public static Integer getNowHour() throws ParseException {
|
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
|
+ Date date = new Date();
|
|
|
|
+ cal.setTime(date);
|
|
|
|
+ return cal.get(Calendar.HOUR_OF_DAY);
|
|
|
|
+ }
|
|
|
|
+
|
|
public static Integer getHour(String dateStr) throws ParseException {
|
|
public static Integer getHour(String dateStr) throws ParseException {
|
|
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
Calendar cal = Calendar.getInstance();
|
|
Calendar cal = Calendar.getInstance();
|
|
@@ -67,6 +130,29 @@ public class DateUtils extends PropertyEditorSupport {
|
|
return cal.get(Calendar.HOUR_OF_DAY);
|
|
return cal.get(Calendar.HOUR_OF_DAY);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public static String getEndTime(String time) throws ParseException {
|
|
|
|
+ SimpleDateFormat smf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
+ Date parse = smf.parse(time);
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
+ calendar.setTime(parse);
|
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, 1);
|
|
|
|
+ calendar.add(Calendar.SECOND, -1);
|
|
|
|
+ Date end = calendar.getTime();
|
|
|
|
+ String format = smf.format(end);
|
|
|
|
+ return format;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 指定模式的时间格式
|
|
|
|
+ private static SimpleDateFormat getSDFormat(String pattern) {
|
|
|
|
+ return new SimpleDateFormat(pattern);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 指定模式的时间格式
|
|
* 指定模式的时间格式
|
|
*
|
|
*
|
|
@@ -78,6 +164,41 @@ public class DateUtils extends PropertyEditorSupport {
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * 日期转换为字符串
|
|
|
|
+ *
|
|
|
|
+ * @return 字符串
|
|
|
|
+ */
|
|
|
|
+ public static String date2Str() {
|
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
+ return format.format(new Date());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static List<Map<String, String>> getDateDayRange(String startDate, String endDate) throws ParseException {
|
|
|
|
+ List<Map<String, String>> list = new ArrayList<>();
|
|
|
|
+ String splitDate = DateUtils.addDay(endDate, -1);
|
|
|
|
+ splitDate = DateUtils.addDay(splitDate, 1);
|
|
|
|
+ if (DateUtils.compareDate(startDate, splitDate) >= 0) {
|
|
|
|
+ Map<String, String> map = new HashMap<String, String>();
|
|
|
|
+ map.put("startDate", startDate);
|
|
|
|
+ map.put("endDate", endDate);
|
|
|
|
+ list.add(map);
|
|
|
|
+ } else {
|
|
|
|
+ while (DateUtils.compareDate(startDate, splitDate) < 0 || DateUtils.compareDate(startDate, endDate) <= 0) {
|
|
|
|
+ Map<String, String> map = new HashMap<>();
|
|
|
|
+ map.put("startDate", splitDate);
|
|
|
|
+ map.put("endDate", endDate);
|
|
|
|
+ list.add(map);
|
|
|
|
+ splitDate = DateUtils.addDay(splitDate, -1);
|
|
|
|
+ endDate = DateUtils.addDay(endDate, -1);
|
|
|
|
+ if (DateUtils.compareDate(startDate, splitDate) > 0) {
|
|
|
|
+ splitDate = startDate;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
* 当前日历,这里用中国时间表示
|
|
* 当前日历,这里用中国时间表示
|
|
*
|
|
*
|
|
* @return 以当地时区表示的系统当前日历
|
|
* @return 以当地时区表示的系统当前日历
|
|
@@ -118,6 +239,46 @@ public class DateUtils extends PropertyEditorSupport {
|
|
}
|
|
}
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 当前日期
|
|
|
|
+ *
|
|
|
|
+ * @param l
|
|
|
|
+ * @return 系统当前时间
|
|
|
|
+ */
|
|
|
|
+ public static Date getDate(long l) {
|
|
|
|
+ return new Date();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public static String getStartTime(Date date) {
|
|
|
|
+ Calendar dateStart = Calendar.getInstance();
|
|
|
|
+ dateStart.setTime(date);
|
|
|
|
+ dateStart.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
+ dateStart.set(Calendar.MINUTE, 0);
|
|
|
|
+ dateStart.set(Calendar.SECOND, 0);
|
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
+ return simpleDateFormat.format(dateStart.getTime());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 日期转换为字符串
|
|
|
|
+ *
|
|
|
|
+ * @param date_sdf 日期格式
|
|
|
|
+ * @return 字符串
|
|
|
|
+ */
|
|
|
|
+ public static String date2Str(SimpleDateFormat date_sdf) {
|
|
|
|
+ Date date = getDate();
|
|
|
|
+ if (null == date) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ return date_sdf.format(date);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static Date getDate() {
|
|
|
|
+ return new Date();
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 格式化时间
|
|
* 格式化时间
|
|
*
|
|
*
|
|
@@ -183,8 +344,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 当前时间的标准形式字符串
|
|
* @return 当前时间的标准形式字符串
|
|
*/
|
|
*/
|
|
public static String now() {
|
|
public static String now() {
|
|
- SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
- return datetimeFormat.format(getCalendar().getTime());
|
|
|
|
|
|
+ return datetimeFormat.get().format(getCalendar().getTime());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -269,8 +429,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 默认日期按“年-月-日“格式显示
|
|
* @return 默认日期按“年-月-日“格式显示
|
|
*/
|
|
*/
|
|
public static String formatDate() {
|
|
public static String formatDate() {
|
|
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
- return format.format(getCalendar().getTime());
|
|
|
|
|
|
+ return date_sdf.get().format(getCalendar().getTime());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -279,8 +438,18 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 默认日期按“yyyy-MM-dd HH:mm:ss“格式显示
|
|
* @return 默认日期按“yyyy-MM-dd HH:mm:ss“格式显示
|
|
*/
|
|
*/
|
|
public static String formatDateTime() {
|
|
public static String formatDateTime() {
|
|
- SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
- return datetimeFormat.format(getCalendar().getTime());
|
|
|
|
|
|
+ return datetimeFormat.get().format(getCalendar().getTime());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static String formatDateTime(Long time) {
|
|
|
|
+ return datetimeFormat.get().format(time);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取时间字符串
|
|
|
|
+ */
|
|
|
|
+ public static String getDataString(SimpleDateFormat formatstr) {
|
|
|
|
+ return formatstr.format(getCalendar().getTime());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -290,8 +459,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 指定日期按“年-月-日“格式显示
|
|
* @return 指定日期按“年-月-日“格式显示
|
|
*/
|
|
*/
|
|
public static String formatDate(Calendar cal) {
|
|
public static String formatDate(Calendar cal) {
|
|
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
- return format.format(cal.getTime());
|
|
|
|
|
|
+ return date_sdf.get().format(cal.getTime());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -301,8 +469,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 指定日期按“年-月-日“格式显示
|
|
* @return 指定日期按“年-月-日“格式显示
|
|
*/
|
|
*/
|
|
public static String formatDate(Date date) {
|
|
public static String formatDate(Date date) {
|
|
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
- return format.format(date);
|
|
|
|
|
|
+ return date_sdf.get().format(date);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -312,8 +479,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 指定毫秒数表示日期按“年-月-日“格式显示
|
|
* @return 指定毫秒数表示日期按“年-月-日“格式显示
|
|
*/
|
|
*/
|
|
public static String formatDate(long millis) {
|
|
public static String formatDate(long millis) {
|
|
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
- return format.format(new Date(millis));
|
|
|
|
|
|
+ return date_sdf.get().format(new Date(millis));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -323,7 +489,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 默认日期按指定格式显示
|
|
* @return 默认日期按指定格式显示
|
|
*/
|
|
*/
|
|
public static String formatDate(String pattern) {
|
|
public static String formatDate(String pattern) {
|
|
- return getDateFormat(pattern).format(getCalendar().getTime());
|
|
|
|
|
|
+ return getSDFormat(pattern).format(getCalendar().getTime());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -334,7 +500,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 指定日期按指定格式显示
|
|
* @return 指定日期按指定格式显示
|
|
*/
|
|
*/
|
|
public static String formatDate(Calendar cal, String pattern) {
|
|
public static String formatDate(Calendar cal, String pattern) {
|
|
- return getDateFormat(pattern).format(cal.getTime());
|
|
|
|
|
|
+ return getSDFormat(pattern).format(cal.getTime());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -345,7 +511,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 指定日期按指定格式显示
|
|
* @return 指定日期按指定格式显示
|
|
*/
|
|
*/
|
|
public static String formatDate(Date date, String pattern) {
|
|
public static String formatDate(Date date, String pattern) {
|
|
- return getDateFormat(pattern).format(date);
|
|
|
|
|
|
+ return getSDFormat(pattern).format(date);
|
|
}
|
|
}
|
|
|
|
|
|
// ////////////////////////////////////////////////////////////////////////////
|
|
// ////////////////////////////////////////////////////////////////////////////
|
|
@@ -359,8 +525,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 默认日期按“年-月-日 时:分“格式显示
|
|
* @return 默认日期按“年-月-日 时:分“格式显示
|
|
*/
|
|
*/
|
|
public static String formatTime() {
|
|
public static String formatTime() {
|
|
- SimpleDateFormat timeSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
|
|
|
- return timeSdf.format(getCalendar().getTime());
|
|
|
|
|
|
+ return time_sdf.get().format(getCalendar().getTime());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -370,8 +535,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 指定毫秒数表示日期按“年-月-日 时:分“格式显示
|
|
* @return 指定毫秒数表示日期按“年-月-日 时:分“格式显示
|
|
*/
|
|
*/
|
|
public static String formatTime(long millis) {
|
|
public static String formatTime(long millis) {
|
|
- SimpleDateFormat timeSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
|
|
|
- return timeSdf.format(new Date(millis));
|
|
|
|
|
|
+ return time_sdf.get().format(new Date(millis));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -381,8 +545,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 指定日期按“年-月-日 时:分“格式显示
|
|
* @return 指定日期按“年-月-日 时:分“格式显示
|
|
*/
|
|
*/
|
|
public static String formatTime(Calendar cal) {
|
|
public static String formatTime(Calendar cal) {
|
|
- SimpleDateFormat timeSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
|
|
|
- return timeSdf.format(cal.getTime());
|
|
|
|
|
|
+ return time_sdf.get().format(cal.getTime());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -392,8 +555,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 指定日期按“年-月-日 时:分“格式显示
|
|
* @return 指定日期按“年-月-日 时:分“格式显示
|
|
*/
|
|
*/
|
|
public static String formatTime(Date date) {
|
|
public static String formatTime(Date date) {
|
|
- SimpleDateFormat timeSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
|
|
|
- return timeSdf.format(date);
|
|
|
|
|
|
+ return time_sdf.get().format(date);
|
|
}
|
|
}
|
|
|
|
|
|
// ////////////////////////////////////////////////////////////////////////////
|
|
// ////////////////////////////////////////////////////////////////////////////
|
|
@@ -407,8 +569,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 默认日期按“时:分“格式显示
|
|
* @return 默认日期按“时:分“格式显示
|
|
*/
|
|
*/
|
|
public static String formatShortTime() {
|
|
public static String formatShortTime() {
|
|
- SimpleDateFormat shortTimeSdf = new SimpleDateFormat("HH:mm");
|
|
|
|
- return shortTimeSdf.format(getCalendar().getTime());
|
|
|
|
|
|
+ return short_time_sdf.get().format(getCalendar().getTime());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -418,8 +579,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 指定毫秒数表示日期按“时:分“格式显示
|
|
* @return 指定毫秒数表示日期按“时:分“格式显示
|
|
*/
|
|
*/
|
|
public static String formatShortTime(long millis) {
|
|
public static String formatShortTime(long millis) {
|
|
- SimpleDateFormat shortTimeSdf = new SimpleDateFormat("HH:mm");
|
|
|
|
- return shortTimeSdf.format(new Date(millis));
|
|
|
|
|
|
+ return short_time_sdf.get().format(new Date(millis));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -477,7 +637,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
* @return 如果转换成功则返回转换后的日期
|
|
* @return 如果转换成功则返回转换后的日期
|
|
* @throws
|
|
* @throws
|
|
*/
|
|
*/
|
|
- public static Calendar parseCalendar(String src, String pattern){
|
|
|
|
|
|
+ public static Calendar parseCalendar(String src, String pattern) {
|
|
|
|
|
|
Date date = parseDate(src, pattern);
|
|
Date date = parseDate(src, pattern);
|
|
Calendar cal = Calendar.getInstance();
|
|
Calendar cal = Calendar.getInstance();
|
|
@@ -596,6 +756,110 @@ public class DateUtils extends PropertyEditorSupport {
|
|
return dateFormat.format(getDate);
|
|
return dateFormat.format(getDate);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public static Date stampToTime(Long ms) throws ParseException {
|
|
|
|
+ long msl = ms * 1000;
|
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
+ Date temp = null;
|
|
|
|
+ if (ms != null) {
|
|
|
|
+ try {
|
|
|
|
+ String str = sdf.format(msl);
|
|
|
|
+ temp = sdf.parse(str);
|
|
|
|
+ } catch (ParseException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return temp;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private static Calendar zeroFromHour(long milliseconds) {
|
|
|
|
+ Calendar calendar = Calendar.getInstance(); // 获得一个日历
|
|
|
|
+
|
|
|
|
+ calendar.setTimeInMillis(completMilliseconds(milliseconds));
|
|
|
|
+ zeroFromHour(calendar);
|
|
|
|
+ return calendar;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private static long completMilliseconds(long milliseconds) {
|
|
|
|
+ String milStr = Long.toString(milliseconds);
|
|
|
|
+ if (milStr.length() == 10) {
|
|
|
|
+ milliseconds = milliseconds * 1000;
|
|
|
|
+ }
|
|
|
|
+ return milliseconds;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private static void zeroFromHour(Calendar calendar) {
|
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
|
+ calendar.set(Calendar.MILLISECOND, 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public static String getWhatDay(long timeStamp) {
|
|
|
|
+ Calendar cal = zeroFromHour(timeStamp);
|
|
|
|
+ String whatDay = "";
|
|
|
|
+ if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
|
|
|
|
+ whatDay = "星期六";
|
|
|
|
+ }
|
|
|
|
+ if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
|
|
|
|
+ whatDay = "星期日";
|
|
|
|
+ }
|
|
|
|
+ if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY) {
|
|
|
|
+ whatDay = "星期一";
|
|
|
|
+ }
|
|
|
|
+ if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.TUESDAY) {
|
|
|
|
+ whatDay = "星期二";
|
|
|
|
+ }
|
|
|
|
+ if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.WEDNESDAY) {
|
|
|
|
+ whatDay = "星期三";
|
|
|
|
+ }
|
|
|
|
+ if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.THURSDAY) {
|
|
|
|
+ whatDay = "星期四";
|
|
|
|
+ }
|
|
|
|
+ if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY) {
|
|
|
|
+ whatDay = "星期五";
|
|
|
|
+ }
|
|
|
|
+ return whatDay;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /* //日期转换为时间戳 */
|
|
|
|
+ public static long timeToStamp(String timers) {
|
|
|
|
+ Date d = new Date();
|
|
|
|
+ long timeStemp = 0;
|
|
|
|
+ try {
|
|
|
|
+ SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
+ d = sf.parse(timers);// 日期转换为时间戳
|
|
|
|
+ } catch (ParseException e) {
|
|
|
|
+
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ timeStemp = d.getTime();
|
|
|
|
+ return timeStemp / 1000;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public static int getdaysOfTwoDate(String minDate, String date) {
|
|
|
|
+ Date bigDate = parseDate(date, "yyyy-MM-dd");
|
|
|
|
+ Date smallDate = parseDate(minDate, "yyyy-MM-dd");
|
|
|
|
+ int days = (int) ((bigDate.getTime() - smallDate.getTime()) / (1000 * 3600 * 24));
|
|
|
|
+ return days + 1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 当前时间前推
|
|
|
|
+ *
|
|
|
|
+ * @param endDate
|
|
|
|
+ * @param i
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static Date addTime(Date endDate, int i) {
|
|
|
|
+ Long time = Long.valueOf(i * 1000 * 60);
|
|
|
|
+ Long time1 = endDate.getTime() - time;
|
|
|
|
+ return new Date(time1);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* String类型 转换为Date, 如果参数长度为10 转换格式”yyyy-MM-dd“ 如果参数长度为19 转换格式”yyyy-MM-dd
|
|
* String类型 转换为Date, 如果参数长度为10 转换格式”yyyy-MM-dd“ 如果参数长度为19 转换格式”yyyy-MM-dd
|
|
* HH:mm:ss“ * @param text String类型的时间值
|
|
* HH:mm:ss“ * @param text String类型的时间值
|
|
@@ -642,31 +906,6 @@ public class DateUtils extends PropertyEditorSupport {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public static List<Map<String, String>> getDateDayRange(String startDate, String endDate) throws ParseException {
|
|
|
|
- List<Map<String, String>> list = new ArrayList<>();
|
|
|
|
- String splitDate = DateUtils.addDay(endDate, -1);
|
|
|
|
- splitDate = DateUtils.addDay(splitDate, 1);
|
|
|
|
- if (DateUtils.compareDate(startDate, splitDate) >= 0) {
|
|
|
|
- Map<String, String> map = new HashMap<>();
|
|
|
|
- map.put("startDate", startDate);
|
|
|
|
- map.put("endDate", endDate);
|
|
|
|
- list.add(map);
|
|
|
|
- } else {
|
|
|
|
- while (DateUtils.compareDate(startDate, splitDate) < 0 || DateUtils.compareDate(startDate, endDate) <= 0) {
|
|
|
|
- Map<String, String> map = new HashMap<>();
|
|
|
|
- map.put("startDate", splitDate);
|
|
|
|
- map.put("endDate", endDate);
|
|
|
|
- list.add(map);
|
|
|
|
- splitDate = DateUtils.addDay(splitDate, -1);
|
|
|
|
- endDate = DateUtils.addDay(endDate, -1);
|
|
|
|
- if (DateUtils.compareDate(startDate, splitDate) > 0) {
|
|
|
|
- splitDate = startDate;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return list;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public static List<Map<String, String>> getDateWeekRange(String startDate, String endDate) throws ParseException {
|
|
public static List<Map<String, String>> getDateWeekRange(String startDate, String endDate) throws ParseException {
|
|
List<Map<String, String>> list = new ArrayList<>();
|
|
List<Map<String, String>> list = new ArrayList<>();
|
|
String splitDate = DateUtils.addWeek(endDate, -1);
|
|
String splitDate = DateUtils.addWeek(endDate, -1);
|
|
@@ -1265,7 +1504,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|
*
|
|
*
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public static boolean isMoreSixMonth(String startDate, String endDate) {
|
|
|
|
|
|
+ public static boolean isMoreSixMonth(String startDate, String endDate) throws ParseException {
|
|
Calendar c = Calendar.getInstance();
|
|
Calendar c = Calendar.getInstance();
|
|
c.setTime(Objects.requireNonNull(parseDate(startDate, SystemDateConstant.yyyy_MM_dd)));
|
|
c.setTime(Objects.requireNonNull(parseDate(startDate, SystemDateConstant.yyyy_MM_dd)));
|
|
long time1 = c.getTimeInMillis();
|
|
long time1 = c.getTimeInMillis();
|
|
@@ -1294,6 +1533,83 @@ public class DateUtils extends PropertyEditorSupport {
|
|
return lDate;
|
|
return lDate;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 以time为节点,获取前几天的日期 yyyy-MM-dd
|
|
|
|
+ *
|
|
|
|
+ * @param
|
|
|
|
+ * @return java.lang.String
|
|
|
|
+ * @throws
|
|
|
|
+ * @author ZHAOXA
|
|
|
|
+ */
|
|
|
|
+ public static String getLastDay(String time, int days) {
|
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
+ Date date = null;
|
|
|
|
+ try {
|
|
|
|
+ date = sdf.parse(time);
|
|
|
|
+ } catch (ParseException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ calendar.setTime(date);
|
|
|
|
+ int day = calendar.get(Calendar.DATE);
|
|
|
|
+ // 此处修改为+1则是获取后一天
|
|
|
|
+ calendar.set(Calendar.DATE, day - days);
|
|
|
|
+
|
|
|
|
+ String lastDay = sdf.format(calendar.getTime());
|
|
|
|
+ return lastDay;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取当月1号零时零分的时间
|
|
|
|
+ *
|
|
|
|
+ * @param
|
|
|
|
+ * @return java.lang.String
|
|
|
|
+ * @throws
|
|
|
|
+ * @author ZHAOXA
|
|
|
|
+ */
|
|
|
|
+ public static String initDateByMonth() {
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
+ calendar.setTime(new Date());
|
|
|
|
+ calendar.set(Calendar.DAY_OF_MONTH, 1);
|
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
+ return sdf.format(calendar.getTime());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取两个日期之间的所有日期集合
|
|
|
|
+ * @author ZHAOXA
|
|
|
|
+ * @param
|
|
|
|
+ * @return java.util.List<java.lang.String>
|
|
|
|
+ * @throws
|
|
|
|
+ */
|
|
|
|
+ public static List<String> getDays(String startTime, String endTime) {
|
|
|
|
+ // 返回的日期集合
|
|
|
|
+ List<String> days = new ArrayList<String>();
|
|
|
|
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
+ try {
|
|
|
|
+ Date start = dateFormat.parse(startTime);
|
|
|
|
+ Date end = dateFormat.parse(endTime);
|
|
|
|
+
|
|
|
|
+ Calendar tempStart = Calendar.getInstance();
|
|
|
|
+ tempStart.setTime(start);
|
|
|
|
+
|
|
|
|
+ Calendar tempEnd = Calendar.getInstance();
|
|
|
|
+ tempEnd.setTime(end);
|
|
|
|
+ tempEnd.add(Calendar.DATE, +1);// 日期加1(包含结束)
|
|
|
|
+ while (tempStart.before(tempEnd)) {
|
|
|
|
+ days.add(dateFormat.format(tempStart.getTime()));
|
|
|
|
+ tempStart.add(Calendar.DAY_OF_YEAR, 1);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } catch (ParseException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return days;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|