package com.yc.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class DateUtils {
/**
* 获取N天前的年月日
*
* @param day N天前 N不能大于15
* @return
*/
public static Map<String, Object> getNyr(int day) {
Map<String, Object> map = new HashMap<>();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
//过去day天
c.setTime(new Date());
c.add(Calendar.DATE, - day);
Date d = c.getTime();
String days = new SimpleDateFormat("yyy-MM-dd").format(d);
String[] nyrArr = days.split("-");
map.put("year", nyrArr[0]);
map.put("month", nyrArr[1]);
map.put("day", nyrArr[2]);
return map;
}
/**
* 获取N天前的 yyyy-MM-dd
* @param day N天前
* @return
*/
public static Date gets(int day) {
Map<String, Object> map = new HashMap<>();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
//过去day天
c.setTime(new Date());
c.add(Calendar.DATE, -day);
Date d = c.getTime();
return d;
}
/**
* 获取某天距离今天的天数
* @param time 今天之前的某天
* @return
*/
public static Long getDay(Date time){
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date star = format.parse(format.format(time));//今天之前的某天
Date endDay=format.parse(format.format(new Date()));//今天
Long starTime=star.getTime();
Long endTime=endDay.getTime();
Long num=endTime-starTime;//时间戳相差的毫秒数
return num/24/60/60/1000;
} catch (Exception e) {
e.printStackTrace();
return 0L;
}
}
/**
* 获取过去 N个月钱的 日期
* @param mon N月前
* @return
*/
public static Date getMonth(int mon){
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
//过去一月
c.setTime(new Date());
c.add(Calendar.MONTH, -mon);
Date m = c.getTime();
String mons = format.format(m);
return format.parse(mons);
} catch (Exception e) {
e.printStackTrace();
return new Date();
}
}
public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
//过去七天
c.setTime(new Date());
c.add(Calendar.DATE, -7);
Date d = c.getTime();
String day = format.format(d);
System.out.println("过去七天:" + day);
//过去一月
c.setTime(new Date());
c.add(Calendar.MONTH, -1);
Date m = c.getTime();
String mon = format.format(m);
System.out.println("过去一个月:" + mon);
//过去三个月
c.setTime(new Date());
c.add(Calendar.MONTH, -3);
Date m3 = c.getTime();
String mon3 = format.format(m3);
System.out.println("过去三个月:" + mon3);
//过去一年
c.setTime(new Date());
c.add(Calendar.YEAR, -1);
Date y = c.getTime();
String year = format.format(y);
System.out.println("过去一年:" + year);
}
}
Java字符串和时间类转换
最新推荐文章于 2023-06-26 20:08:50 发布