123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package cn.com.ctop.common.utils;
- import java.sql.Timestamp;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
- public class DateUtils {
- public static List<Map<String, String>> getDateDayRange(String startDate, String endDate) throws ParseException {
- List<Map<String, String>> list = new ArrayList<Map<String, String>>();
- 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<String, String>();
- 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 {
- List<Map<String, String>> list = new ArrayList<Map<String, String>>();
- String splitDate = DateUtils.addWeek(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<String, String>();
- map.put("startDate", splitDate);
- map.put("endDate", endDate);
- list.add(map);
- splitDate = DateUtils.addWeek(splitDate, -1);
- endDate = DateUtils.addWeek(endDate, -1);
- if (DateUtils.compareDate(startDate, splitDate) > 0) {
- splitDate = startDate;
- }
- }
- }
- return list;
- }
- public static List<Map<String, String>> getDateMonthRange(String startDate, String endDate) throws ParseException {
- List<Map<String, String>> list = new ArrayList<Map<String, String>>();
- String splitDate = DateUtils.addMonth(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<String, String>();
- map.put("startDate", splitDate);
- map.put("endDate", endDate);
- list.add(map);
- splitDate = DateUtils.addMonth(splitDate, -1);
- endDate = DateUtils.addMonth(endDate, -1);
- if (DateUtils.compareDate(startDate, splitDate) > 0) {
- splitDate = startDate;
- }
- }
- }
- return list;
- }
- public static String addMonth(String dateString, int month) throws ParseException {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- Date date = sdf.parse(dateString);
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- calendar.add(Calendar.MONTH, month);
- return sdf.format(calendar.getTime());
- }
- public static String addWeek(String dateString, int week) throws ParseException {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- Date date = sdf.parse(dateString);
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- calendar.add(Calendar.WEEK_OF_YEAR, week);
- return sdf.format(calendar.getTime());
- }
- public static String addDay(String dateString, int day) throws ParseException {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- Date date = sdf.parse(dateString);
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- calendar.add(Calendar.DAY_OF_YEAR, day);
- return sdf.format(calendar.getTime());
- }
- public static Date addDay(Date date, int day) {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- calendar.add(Calendar.DAY_OF_YEAR, day);
- return calendar.getTime();
- }
- public static Date addSecond(Date date, int seconds) {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- calendar.add(Calendar.SECOND, seconds);
- return calendar.getTime();
- }
- public static int compareDate(String firstDateString, String secondDateString) throws ParseException {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- Date firstDate = sdf.parse(firstDateString);
- Date secondDate = sdf.parse(secondDateString);
- long first = firstDate.getTime();
- long second = secondDate.getTime();
- return first == second ? 0 : (first > second ? 1 : -1);
- }
- public static String timeStamp2Date(Timestamp timeLong) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//要转换的时间格式
- Date date;
- try {
- date = sdf.parse(sdf.format(timeLong));
- return sdf.format(date);
- } catch (ParseException e) {
- e.printStackTrace();
- return null;
- }
- }
- public static String timeStamp2Date(long currentTimeMillis) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//要转换的时间格式
- Date date;
- try {
- date = sdf.parse(sdf.format(currentTimeMillis));
- return sdf.format(date);
- } catch (ParseException e) {
- e.printStackTrace();
- return null;
- }
- }
- }
|