|
@@ -1,618 +0,0 @@
|
|
|
-package com.happy.Until;
|
|
|
|
|
-
|
|
|
|
|
-import org.apache.commons.lang.time.DateUtils;
|
|
|
|
|
-
|
|
|
|
|
-import java.sql.Timestamp;
|
|
|
|
|
-import java.text.DateFormat;
|
|
|
|
|
-import java.text.ParseException;
|
|
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
|
|
-import java.util.*;
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * 时间转化工具 date转为时间戳 时间戳转date 互相与String的转换
|
|
|
|
|
- * 所有出现的String time 格式都必须为(yyyy-MM-dd HH:mm:ss),否则出错
|
|
|
|
|
- * @author 赵仁杰
|
|
|
|
|
- *
|
|
|
|
|
- */
|
|
|
|
|
-public class TimeExchange {
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * String(yyyy-MM-dd HH:mm:ss) 转 Date
|
|
|
|
|
- *
|
|
|
|
|
- * @param time
|
|
|
|
|
- * @return
|
|
|
|
|
- * @throws ParseException
|
|
|
|
|
- */
|
|
|
|
|
- // String date = "2010/05/04 12:34:23";
|
|
|
|
|
- public static Date StringToDate(String time) throws ParseException {
|
|
|
|
|
-
|
|
|
|
|
- Date date = new Date();
|
|
|
|
|
- // 注意format的格式要与日期String的格式相匹配
|
|
|
|
|
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- try {
|
|
|
|
|
- date = dateFormat.parse(time);
|
|
|
|
|
- System.out.println(date.toString());
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return date;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static Date StringToDate2(String time) throws ParseException {
|
|
|
|
|
-
|
|
|
|
|
- Date date = new Date();
|
|
|
|
|
- // 注意format的格式要与日期String的格式相匹配
|
|
|
|
|
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- try {
|
|
|
|
|
- date = dateFormat.parse(time);
|
|
|
|
|
- System.out.println(date.toString());
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return date;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * String(yyyy-MM-dd HH:mm:ss) 转 Date
|
|
|
|
|
- *
|
|
|
|
|
- * @param time
|
|
|
|
|
- * @return
|
|
|
|
|
- * @throws ParseException
|
|
|
|
|
- */
|
|
|
|
|
- // String date = "2010/05/04 12:34:23";
|
|
|
|
|
- public static Date StringToDate(String time, String formatStr) throws ParseException {
|
|
|
|
|
-
|
|
|
|
|
- Date date = new Date();
|
|
|
|
|
- // 注意format的格式要与日期String的格式相匹配
|
|
|
|
|
- DateFormat dateFormat = new SimpleDateFormat(formatStr);
|
|
|
|
|
- try {
|
|
|
|
|
- date = dateFormat.parse(time);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return date;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * Date转为String(yyyy-MM-dd HH:mm:ss)
|
|
|
|
|
- *
|
|
|
|
|
- * @param time
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public static String DateToString(Date time) {
|
|
|
|
|
- String dateStr = "";
|
|
|
|
|
- Date date = new Date();
|
|
|
|
|
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");
|
|
|
|
|
- try {
|
|
|
|
|
- dateStr = dateFormat.format(time);
|
|
|
|
|
- System.out.println(dateStr);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
- return dateStr;
|
|
|
|
|
- }
|
|
|
|
|
- /**
|
|
|
|
|
- * String(yyyy-MM-dd HH:mm:ss)转10位时间戳
|
|
|
|
|
- * @param time
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public static Integer StringToTimestamp(String time){
|
|
|
|
|
-
|
|
|
|
|
- int times = 0;
|
|
|
|
|
- try {
|
|
|
|
|
- times = (int) ((Timestamp.valueOf(time).getTime())/1000);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
- if(times==0){
|
|
|
|
|
- System.out.println("String转10位时间戳失败");
|
|
|
|
|
- }
|
|
|
|
|
- return times;
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- /**
|
|
|
|
|
- * 10位int型的时间戳转换为String(yyyy-MM-dd HH:mm:ss)
|
|
|
|
|
- * @param time
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public static String timestampToString(Integer time){
|
|
|
|
|
- //int转long时,先进行转型再进行计算,否则会是计算结束后在转型
|
|
|
|
|
- long temp = (long)time*1000;
|
|
|
|
|
- Timestamp ts = new Timestamp(temp);
|
|
|
|
|
- String tsStr = "";
|
|
|
|
|
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- try {
|
|
|
|
|
- //方法一
|
|
|
|
|
- tsStr = dateFormat.format(ts);
|
|
|
|
|
- System.out.println(tsStr);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
- return tsStr;
|
|
|
|
|
- }
|
|
|
|
|
- /**
|
|
|
|
|
- * 10位时间戳转Date
|
|
|
|
|
- * @param time
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public static Date TimestampToDate(Integer time){
|
|
|
|
|
- long temp = (long)time*1000;
|
|
|
|
|
- Timestamp ts = new Timestamp(temp);
|
|
|
|
|
- Date date = new Date();
|
|
|
|
|
- try {
|
|
|
|
|
- date = ts;
|
|
|
|
|
- //System.out.println(date);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
- return date;
|
|
|
|
|
- }
|
|
|
|
|
- /**
|
|
|
|
|
- * Date类型转换为10位时间戳
|
|
|
|
|
- * @param time
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public static Integer DateToTimestamp(Date time){
|
|
|
|
|
- Timestamp ts = new Timestamp(time.getTime());
|
|
|
|
|
-
|
|
|
|
|
- return (int) ((ts.getTime())/1000);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 当前时间减1小时
|
|
|
|
|
- public static String TimeDesH(String time) throws ParseException {
|
|
|
|
|
- Calendar nowTime2 = Calendar.getInstance();
|
|
|
|
|
- nowTime2.setTime(StringToDate(time));
|
|
|
|
|
- nowTime2.add(Calendar.HOUR, -1);
|
|
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- return simpleDateFormat.format(nowTime2.getTime());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 最近两天
|
|
|
|
|
- public static String getLastTwo() throws ParseException {
|
|
|
|
|
- Calendar nowTime2 = Calendar.getInstance();
|
|
|
|
|
- nowTime2.setTime(StringToDate(getTime()));
|
|
|
|
|
- nowTime2.add(Calendar.DATE, -2);
|
|
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
- return simpleDateFormat.format(nowTime2.getTime());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 当前时间加5分钟
|
|
|
|
|
- public static String TimeRangeI(String time) throws ParseException {
|
|
|
|
|
- // 当前时间+5分钟
|
|
|
|
|
- Date endTime = DateUtils.addMinutes(StringToDate(time), 300);
|
|
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- return simpleDateFormat.format(endTime);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 当前时间加2分钟
|
|
|
|
|
- public static String TimeRangeI10(String time,int m) throws ParseException {
|
|
|
|
|
- Calendar nowTime2 = Calendar.getInstance();
|
|
|
|
|
- nowTime2.setTime(StringToDate(time));
|
|
|
|
|
- nowTime2.add(Calendar.SECOND, m);//10分钟前的时间
|
|
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- return simpleDateFormat.format(nowTime2.getTime());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 当前时间加多少分钟
|
|
|
|
|
- public static String TimeRangeM(String time,int m) throws ParseException {
|
|
|
|
|
- Calendar nowTime2 = Calendar.getInstance();
|
|
|
|
|
- nowTime2.setTime(StringToDate2(time));
|
|
|
|
|
- nowTime2.add(Calendar.MINUTE, m);//10分钟前的时间
|
|
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- return simpleDateFormat.format(nowTime2.getTime());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- // 当前时间减5分钟
|
|
|
|
|
- public static String TimeRangeD(String time) throws ParseException {
|
|
|
|
|
- Calendar nowTime2 = Calendar.getInstance();
|
|
|
|
|
- nowTime2.setTime(StringToDate(time));
|
|
|
|
|
- nowTime2.add(Calendar.MINUTE, -300);//5分钟前的时间
|
|
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- return simpleDateFormat.format(nowTime2.getTime());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 获取当前日期
|
|
|
|
|
- public static String getDateStr(){
|
|
|
|
|
- SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
- return sp.format(new Date());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 获取当前日期
|
|
|
|
|
- public static String getDate(){
|
|
|
|
|
- SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- return sp.format(new Date());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 获取前天
|
|
|
|
|
- public static String getQianDay() throws ParseException {
|
|
|
|
|
- Calendar nowTime2 = Calendar.getInstance();
|
|
|
|
|
- nowTime2.setTime(StringToDate(getTime()));
|
|
|
|
|
- nowTime2.add(Calendar.DATE, -5);//5分钟前的时间
|
|
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- return simpleDateFormat.format(nowTime2.getTime());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 获取明天
|
|
|
|
|
- public static String getTomorrow() throws ParseException {
|
|
|
|
|
- Calendar nowTime2 = Calendar.getInstance();
|
|
|
|
|
- nowTime2.setTime(StringToDate(getTime()));
|
|
|
|
|
- nowTime2.add(Calendar.DATE, 1);//5分钟前的时间
|
|
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
- return simpleDateFormat.format(nowTime2.getTime());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 获取昨天
|
|
|
|
|
- public static String getYesturday() {
|
|
|
|
|
- try {
|
|
|
|
|
- Calendar nowTime2 = Calendar.getInstance();
|
|
|
|
|
- nowTime2.setTime(StringToDate(getTime()));
|
|
|
|
|
- nowTime2.add(Calendar.DATE, -1);
|
|
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
- return simpleDateFormat.format(nowTime2.getTime());
|
|
|
|
|
- } catch (ParseException e) {
|
|
|
|
|
- throw new RuntimeException(e);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- public static String getTomorrowTime() throws ParseException {
|
|
|
|
|
- Calendar nowTime2 = Calendar.getInstance();
|
|
|
|
|
- nowTime2.setTime(StringToDate(getTime()));
|
|
|
|
|
- nowTime2.add(Calendar.DATE, 1);//5分钟前的时间
|
|
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- return simpleDateFormat.format(nowTime2.getTime());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static String getWeek(String sdate) throws ParseException {
|
|
|
|
|
- // 再转换为时间
|
|
|
|
|
- Date date = StringToDate(sdate,"yyyy-MM-dd");
|
|
|
|
|
- Calendar c = Calendar.getInstance();
|
|
|
|
|
- c.setTime(date);
|
|
|
|
|
- // int hour=c.get(Calendar.DAY_OF_WEEK);
|
|
|
|
|
- // hour中存的就是星期几了,其范围 1~7
|
|
|
|
|
- // 1=星期日 7=星期六,其他类推
|
|
|
|
|
- return new SimpleDateFormat("EEEE").format(c.getTime());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 今天星期几
|
|
|
|
|
- public static String getWeek() throws ParseException {
|
|
|
|
|
- String[] weeks = {"7","1","2","3","4","5","6"};
|
|
|
|
|
- Calendar cal = Calendar.getInstance();
|
|
|
|
|
- cal.setTime(StringToDate(getTime()));
|
|
|
|
|
- int week_index = cal.get(Calendar.DAY_OF_WEEK) - 1;
|
|
|
|
|
- if(week_index<0){
|
|
|
|
|
- week_index = 0;
|
|
|
|
|
- }
|
|
|
|
|
- return weeks[week_index];
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 明天星期几
|
|
|
|
|
- public static String getTomorrowWeek() throws ParseException {
|
|
|
|
|
- String[] weeks = {"7","1","2","3","4","5","6"};
|
|
|
|
|
- Calendar cal = Calendar.getInstance();
|
|
|
|
|
- cal.setTime(StringToDate(getTomorrowTime()));
|
|
|
|
|
- int week_index = cal.get(Calendar.DAY_OF_WEEK) - 1;
|
|
|
|
|
- if(week_index<0){
|
|
|
|
|
- week_index = 0;
|
|
|
|
|
- }
|
|
|
|
|
- return weeks[week_index];
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 获取当前时间
|
|
|
|
|
- public static String getTime(){
|
|
|
|
|
- SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- return sp.format(new Date());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static String getOnlyMM(){
|
|
|
|
|
- SimpleDateFormat sp = new SimpleDateFormat("HH:mm");
|
|
|
|
|
- return sp.format(new Date());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static String getOnlyDesMM() throws ParseException {
|
|
|
|
|
- Calendar nowTime2 = Calendar.getInstance();
|
|
|
|
|
- nowTime2.setTime(StringToDate(getTime()));
|
|
|
|
|
- nowTime2.add(Calendar.MINUTE, -5);//5分钟前的时间
|
|
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");
|
|
|
|
|
- return simpleDateFormat.format(nowTime2.getTime());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static String getYear(){
|
|
|
|
|
- SimpleDateFormat sp = new SimpleDateFormat("yyyy");
|
|
|
|
|
- return sp.format(new Date());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static String getMonth(){
|
|
|
|
|
- SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM");
|
|
|
|
|
- return sp.format(new Date());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 获取当前时间
|
|
|
|
|
- public static String getOnlyTime(){
|
|
|
|
|
- SimpleDateFormat sp = new SimpleDateFormat("HH:mm:ss");
|
|
|
|
|
- return sp.format(new Date());
|
|
|
|
|
- }
|
|
|
|
|
- /**
|
|
|
|
|
- * 计算两个日期的时间差
|
|
|
|
|
- * @param time1
|
|
|
|
|
- * @param time2
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public static double getTimeDifference(String time1, String time2) {
|
|
|
|
|
- SimpleDateFormat timeformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- long t1 = 0L;
|
|
|
|
|
- long t2 = 0L;
|
|
|
|
|
- try {
|
|
|
|
|
- t1 = timeformat.parse(time1).getTime();
|
|
|
|
|
- } catch (ParseException e) {
|
|
|
|
|
- // TODO Auto-generated catch block
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
- try {
|
|
|
|
|
- t2 = timeformat.parse(time2).getTime();
|
|
|
|
|
- } catch (ParseException e) {
|
|
|
|
|
- // TODO Auto-generated catch block
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
- //因为t1-t2得到的是毫秒级,所以要初3600000得出小时.算天数或秒同理
|
|
|
|
|
- double hours=(double) ((t2 - t1)/3600000);
|
|
|
|
|
- double minutes=(double) (((t2 - t1)/1000-hours*3600)/60/60);
|
|
|
|
|
- return hours+minutes;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static double getOnlyTimeDifference(String time1, String time2) {
|
|
|
|
|
- SimpleDateFormat timeformat = new SimpleDateFormat("HH:mm:ss");
|
|
|
|
|
- long t1 = 0L;
|
|
|
|
|
- long t2 = 0L;
|
|
|
|
|
- try {
|
|
|
|
|
- t1 = timeformat.parse(time1).getTime();
|
|
|
|
|
- } catch (ParseException e) {
|
|
|
|
|
- // TODO Auto-generated catch block
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
- try {
|
|
|
|
|
- t2 = timeformat.parse(time2).getTime();
|
|
|
|
|
- } catch (ParseException e) {
|
|
|
|
|
- // TODO Auto-generated catch block
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
- //因为t1-t2得到的是毫秒级,所以要初3600000得出小时.算天数或秒同理
|
|
|
|
|
- double hours=(double) ((t2 - t1)/3600000);
|
|
|
|
|
- double minutes=(double) (((t2 - t1)/1000-hours*3600)/60/60);
|
|
|
|
|
- return hours+minutes;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static double getDiff(String str1, String str2){
|
|
|
|
|
- return str2.compareTo(str1);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 时间减去分钟数
|
|
|
|
|
- * @param time 时间
|
|
|
|
|
- * @param FormatStr 时间格式
|
|
|
|
|
- * @param amount 要加减的时间(单位为秒)
|
|
|
|
|
- * @return
|
|
|
|
|
- * @throws ParseException
|
|
|
|
|
- */
|
|
|
|
|
- public static String TimeRangeI(String time,int amount,String FormatStr) throws ParseException {
|
|
|
|
|
- Date endTime = DateUtils.addMinutes(ShortStringToDate(time, FormatStr), amount);
|
|
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat(FormatStr);
|
|
|
|
|
- return simpleDateFormat.format(endTime);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * String 转 Date
|
|
|
|
|
- * @param time 时间
|
|
|
|
|
- * @param formatStr 自定义时间格式
|
|
|
|
|
- * @return
|
|
|
|
|
- * @throws ParseException
|
|
|
|
|
- */
|
|
|
|
|
- public static Date ShortStringToDate(String time, String formatStr) throws ParseException {
|
|
|
|
|
-
|
|
|
|
|
- Date date = new Date();
|
|
|
|
|
- // 注意format的格式要与日期String的格式相匹配
|
|
|
|
|
- DateFormat dateFormat = new SimpleDateFormat(formatStr);
|
|
|
|
|
- try {
|
|
|
|
|
- date = dateFormat.parse(time);
|
|
|
|
|
- System.out.println(date.toString());
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return date;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 获取指定月份有多少天
|
|
|
|
|
- *
|
|
|
|
|
- * @param month
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public static int getMonthDays(String date, int month) {
|
|
|
|
|
- int year = Integer.valueOf(date.substring(0, 4));
|
|
|
|
|
- int[] arr = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
|
|
|
|
|
- int day = arr[month - 1];//天数对应=数组-1
|
|
|
|
|
- if (month == 2 && year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
|
|
|
|
|
- day = 29;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return day;
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * Date转为String
|
|
|
|
|
- * @param time 时间
|
|
|
|
|
- * @param FormatStr 自定义时间格式
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public static String DateToString(Date time, String FormatStr) {
|
|
|
|
|
- String dateStr = "";
|
|
|
|
|
- DateFormat dateFormat = new SimpleDateFormat(FormatStr);
|
|
|
|
|
- try {
|
|
|
|
|
- dateStr = dateFormat.format(time);
|
|
|
|
|
- System.out.println(dateStr);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
- return dateStr;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 比较时间1是否小于时间2
|
|
|
|
|
- * 如果时间1小于时间2,接口返回true
|
|
|
|
|
- * 如果时间1大于时间2,接口返回false
|
|
|
|
|
- * @param dateOne 时间1
|
|
|
|
|
- * @param dateTwo 时间2
|
|
|
|
|
- * @return
|
|
|
|
|
- * @throws ParseException
|
|
|
|
|
- */
|
|
|
|
|
- public static boolean CompareDate(String dateOne, String dateTwo) throws ParseException {
|
|
|
|
|
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- Date sd1=df.parse(dateOne);
|
|
|
|
|
- Date sd2=df.parse(dateTwo);
|
|
|
|
|
- return sd1.before(sd2);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 比较时间1是否小于时间2
|
|
|
|
|
- * 如果时间1小于时间2,接口返回true
|
|
|
|
|
- * 如果时间1大于时间2,接口返回false
|
|
|
|
|
- *
|
|
|
|
|
- * @param dateOne 时间1
|
|
|
|
|
- * @param dateTwo 时间2
|
|
|
|
|
- * @param Forma 时间格式
|
|
|
|
|
- * @return
|
|
|
|
|
- * @throws ParseException
|
|
|
|
|
- */
|
|
|
|
|
- public static boolean CompareDate(String dateOne, String dateTwo, String Forma) throws ParseException {
|
|
|
|
|
- SimpleDateFormat df = new SimpleDateFormat(Forma);
|
|
|
|
|
- Date sd1 = df.parse(dateOne);
|
|
|
|
|
- Date sd2 = df.parse(dateTwo);
|
|
|
|
|
- return sd1.before(sd2);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 时间加减天数
|
|
|
|
|
- *
|
|
|
|
|
- * @param time 时间
|
|
|
|
|
- * @param amount 天数 负的为减多少天 正的为加多少天
|
|
|
|
|
- * @return
|
|
|
|
|
- * @throws ParseException
|
|
|
|
|
- */
|
|
|
|
|
- public static String TimeDesD(String time, int amount) throws ParseException {
|
|
|
|
|
- Calendar nowTime2 = Calendar.getInstance();
|
|
|
|
|
- nowTime2.setTime(StringToDate(time, "yyyy-MM-dd"));
|
|
|
|
|
- nowTime2.add(Calendar.DATE, amount);
|
|
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
- return simpleDateFormat.format(nowTime2.getTime());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 相差的天数
|
|
|
|
|
- */
|
|
|
|
|
- public static int daysBetween(String smdate, String bdate) throws ParseException {
|
|
|
|
|
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
- Calendar cal = Calendar.getInstance();
|
|
|
|
|
- cal.setTime(sdf.parse(smdate));
|
|
|
|
|
- long time1 = cal.getTimeInMillis();
|
|
|
|
|
- cal.setTime(sdf.parse(bdate));
|
|
|
|
|
- long time2 = cal.getTimeInMillis();
|
|
|
|
|
- long between_days = (time2 - time1) / (1000 * 3600 * 24);
|
|
|
|
|
-
|
|
|
|
|
- return Integer.parseInt(String.valueOf(between_days));
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 获取一周的开始时间和结束时间
|
|
|
|
|
- * 获取本周星期一作为一周的第一天的起始时间和结束时间
|
|
|
|
|
- *
|
|
|
|
|
- * @return 返回的数据中第一个是开始时间 第二个是结束时间
|
|
|
|
|
- */
|
|
|
|
|
- public static String[] getCurrentWeekTimeFrame() {
|
|
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
|
|
- calendar.setTimeZone(TimeZone.getTimeZone("GMT+8"));
|
|
|
|
|
- //start of the week
|
|
|
|
|
- if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
|
|
|
|
|
- calendar.add(Calendar.DAY_OF_YEAR,-1);
|
|
|
|
|
- }
|
|
|
|
|
- calendar.add(Calendar.DAY_OF_WEEK, -(calendar.get(Calendar.DAY_OF_WEEK) - 2));
|
|
|
|
|
- //给0的时候查不出数据
|
|
|
|
|
-// calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
|
-// calendar.set(Calendar.MINUTE, 0);
|
|
|
|
|
-// calendar.set(Calendar.SECOND, 0);
|
|
|
|
|
-// calendar.set(Calendar.MILLISECOND, 0);
|
|
|
|
|
-
|
|
|
|
|
- String startTime = DateToString(calendar.getTime(), "yyyy-MM-dd");
|
|
|
|
|
- //end of the week
|
|
|
|
|
- calendar.add(Calendar.DAY_OF_WEEK, 6);
|
|
|
|
|
- calendar.set(Calendar.HOUR_OF_DAY, 23);
|
|
|
|
|
- calendar.set(Calendar.MINUTE, 59);
|
|
|
|
|
- calendar.set(Calendar.SECOND, 59);
|
|
|
|
|
- calendar.set(Calendar.MILLISECOND, 999);
|
|
|
|
|
- String endTime = DateToString(calendar.getTime());
|
|
|
|
|
- return new String[]{startTime, endTime};
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 获取指定月份的第一天和最后一天
|
|
|
|
|
- * @param DateStr 指定月份
|
|
|
|
|
- * @return 返回的数据中第一个是开始时间 第二个是结束时间
|
|
|
|
|
- */
|
|
|
|
|
- public static String[] getCurrentMonthTimeFrame(String DateStr) {
|
|
|
|
|
- Calendar c = Calendar.getInstance();//获取Calendar实例
|
|
|
|
|
- c.set(Calendar.YEAR, Integer.parseInt(DateStr.substring(0, 4)));
|
|
|
|
|
- c.set(Calendar.MONTH, Integer.parseInt(DateStr.substring(5, 7).replace("-", "")) - 1);
|
|
|
|
|
-
|
|
|
|
|
- c.set(Calendar.DAY_OF_MONTH, 1);
|
|
|
|
|
-
|
|
|
|
|
- String startDate = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
|
|
|
|
|
-
|
|
|
|
|
- int lastDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
|
|
|
|
|
- c.set(Calendar.DAY_OF_MONTH, lastDay);
|
|
|
|
|
- String endDate = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
|
|
|
|
|
-
|
|
|
|
|
- return new String[]{startDate, endDate};
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static List<String> getHighTime(){
|
|
|
|
|
- String year = getYear();
|
|
|
|
|
- return Arrays.asList(year+"-"+"08-30",year+"-"+"08-31",year+"-"+"09-01",year+"-"+"09-02",year+"-"+"09-03",year+"-"+"09-04");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- 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, 0);// 日期加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;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- public static void main(String[] args) throws ParseException {
|
|
|
|
|
- System.out.println(CompareDate("2023-07-25", "2023-07-01"));
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|