目录
1、获取当前系统日期()yyyy-MM-dd)
2、获取当前系统时间(HH:mm:ss)
3、获取当前系统时间
4、获取当前时间字符串
5、日期字符串转日期类型
6、获取周岁
7、两个时间之间相差距离多少天
8、校验未来日期
9、比较日期
10、获取指定时间
11、判断是否为闰年
12、获取指定时间的年、月、日
/**
* 获取当前系统日期
*
* @return 当前日期字符串,格式为:"yyyy-MM-dd"
*/
public static String getCurrentDate() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date today = new Date();
String todayStr = df.format(today);
return todayStr;
}
/**
* 获取当前系统时间
*
* @author liucy
* @return 当前日期字符串,格式为:"HH:mm:ss"
*/
public static String getCurrentTime() {
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
Date now = new Date();
String nowStr = df.format(now);
return nowStr;
}
/**
* 获取当前系统时间
*
* @author liucy
* @return 当前日期字符串,格式为:"yyyy-MM-dd HH:mm:ss"
*/
public static String getCurrentDateTime() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date today = new Date();
String todayStr = df.format(today);
return todayStr;
}
/**
* 获取当前时间字符串
*
* @author liucy
* @return 当前时间字符串,格式为:"yyyyMMddHHmmss"
*/
public static String getTimeString() {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
Date today = new Date();
String todayStr = df.format(today);
return todayStr;
}
/**
* 日期字符串转日期类型
* @author liucy
* @param dateStr 日期字符串
* @param formatStr 格式化样式 例:yyyy-MM-dd
* @return date
*/
public static Date strToDate(String dateStr, String formatStr) {
if (formatStr==null || "".equals(formatStr)) {
formatStr = "yyyy-MM-dd";
}
SimpleDateFormat format = new SimpleDateFormat(formatStr);
Date date = null;
try {
date = format.parse(dateStr);
} catch (ParseException e) {
log.info("", e);
}
return date;
}
/**
* 获取周岁
* @param birthday
* @return
*/
public static int getCurrentAge(String birthday,String date){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
try {
Calendar curr = Calendar.getInstance();
Calendar born = Calendar.getInstance();
curr.setTime(sdf.parse(date));
born.setTime(sdf.parse(birthday));
int age = curr.get(Calendar.YEAR)-born.get(Calendar.YEAR);
if (age<=0){
return 0;
}
int currMonth = curr.get(Calendar.MONTH);
int currDay = curr.get(Calendar.DAY_OF_MONTH);
int bornMonth = born.get(Calendar.MONTH);
int bornDay = born.get(Calendar.DAY_OF_MONTH);
if((currMonth
/**
* 两个时间之间相差距离多少天
* @param str1 时间参数 1:
* @param str2 时间参数 2:
* @return 相差天数
*/
public static long getDistanceDays(String str1, String str2) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date one;
Date two;
long days=0;
try {
one = df.parse(str1);
two = df.parse(str2);
long time1 = one.getTime();
long time2 = two.getTime();
long diff ;
if(time1
//校验未来日期
public static boolean checkFutureDate(String strDate){
//判断是否为未来日期
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");//可以方便地修改日期格式
String nowdate = dateFormat.format(new Date());
// String strdate = strDate.replace("/","-");
if(nowdate.compareTo(strDate)>0){
return false;//不是未来日期
}
return true;//未来日期(含当前日期)
}
//比较日期 前>后:false
public static boolean checkDate(String strDate,String strDate1){
if(strDate.compareTo(strDate1)>0){
return false;
}
return true;
}
//比较日期 前>=后:false
public static boolean checkDate1(String strDate,String strDate1){
if(strDate.compareTo(strDate1)>=0){
return false;
}
return true;
}
//获取指定时间
public static String getAppointDate(Date date,int value,int DateParm) {
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
switch (DateParm) {
case 1:
calendar.add(calendar.YEAR, value);//把日期往后增加一年.整数往后推,负数往前移动
break;
case 2:
calendar.add(calendar.MONTH, value);// 把日期往后增加一月.整数往后推,负数往前移动
break;
case 3:
calendar.add(calendar.DAY_OF_MONTH,value);//把日期往后增加一天.整数往后推,负数往前移动
break;
}
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String newStr = df.format(calendar.getTime());
return newStr;
}
/**
* 判断是否为闰年
* @param year
* @return
* 日常生活中,我们使用公历来跟踪时间和日期。
* 公历是以365天为基准的日历系统,但是由于地球绕太阳运行的轨道不是完全精确的,我们需要引入闰年的概念来修正这个误差。
* 闰年是指具有特殊日期的年份,它有一个额外的一天(2月29日),使得该年的长度为366天。
*
* 那么,什么样的年份才被定义为闰年呢?根据国际标准,一个年份被视为闰年的条件是:
* 能够被4整除,并且不能被100整除的年份是闰年。
* 能够被400整除的年份同样也是闰年。
* 闰年的引入确保了我们的日历与地球运行轨道的对齐,使得时间的计算更加准确。
*/
public static boolean isLeapYear(int year) {
if (year % 4 == 0) {
if (year % 100 == 0) {
if (year % 400 == 0) {
return true; // 能够被400整除,是闰年
} else {
return false; // 能够被100整除但不能被400整除,不是闰年
}
} else {
return true; // 能够被4整除但不能被100整除,是闰年
}
} else {
return false; // 不能够被4整除,不是闰年
}
}
@Data
@Builder
public class DateYMD {
private int year;
private int month;
private int day;
}
/**
* 获取年、月、日
*/
public static DateYMD getDateYMD(String strDate){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = sdf.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR) ;
int month = calendar.get(Calendar.MONTH) +1 ;
int day = calendar.get(Calendar.DATE);
return DateYMD.builder().year(year).month(month).day(day).build();
}