Java 常用时间转换格式方法
导入包文件
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.TemporalAdjusters;
import java.util.Date;
格式化前N天时间
/**
* 格式化前N天时间
*
* @param daysToSubtract 前N天
* @param pattern 格式
* @return
*/
public static String format(long daysToSubtract, String pattern) {
LocalDateTime localDateTime = LocalDateTime.now();
localDateTime = localDateTime.minusDays(daysToSubtract);
return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
}
格式化当前时间
/**
* 格式化当前时间
*
* @param pattern
* @return
*/
public static String getNowDateFormat(String pattern) {
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
}
获取当前时间
/**
* 获取当前时间
*
* @return
*/
public static Date getNowDate() {
LocalDateTime localDateTime = LocalDateTime.now();
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);
Instant instant = zonedDateTime.toInstant();
Date date = Date.from(instant);
return date;
}
校验时间字符串是否合法
/**
* 校验时间字符串是否合法
*
* @param dateStr the date str
* @param pattern the pattern
* @return the boolean
*/
public static boolean validDateStr(String dateStr, String pattern) {
try {
LocalDate.parse(dateStr, new DateTimeFormatterBuilder().appendPattern(pattern).parseStrict().toFormatter());
return true;
} catch (Exception e) {
return false;
}
}
判断时间是否月份最后一天
/**
* 是否月份最后一天
*
* @param date 日期
* @param pattern 日期格式
* @return
*/
public static boolean isLastDayOfMonth(String date, String pattern) {
LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern(pattern));
// 获取月最后一天
String lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth()).format(DateTimeFormatter.ofPattern(pattern));
return lastDayOfMonth.equals(date);
}
日期加天数
/**
* @param date 日期
* @param pattern 日期格式
* @param daysToAdd 增加天数
* @return
*/
public static String plusDays(String date, String pattern, long daysToAdd) {
LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern(pattern));
return localDate.plusDays(daysToAdd).format(DateTimeFormatter.ofPattern("yyyyMMdd"));
}
时间往后一分钟
/**
* 时间往后一分钟
*
* @param dateTime
* @return
*/
public static String reduceTime(String dateTime) {
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = simpleDateFormat.parse(dateTime);
//1分钟
long time = 1 * 60* 1000;
//1分钟前的时间
Date beforeDate = new Date(date.getTime() - time);
return simpleDateFormat.format(beforeDate);
} catch (Exception e) {
}
return null;
}
获取当月最大时间,当月最后一天的23:59:59
/* * 获取当月最大时间,当月最后一天的23:59:59
*
* @return
*/
public static Date getMaxDateTimeOfMonth() {
LocalDateTime localDateTime = LocalDateTime.now();
//当月最后一天
localDateTime = localDateTime.with(TemporalAdjusters.lastDayOfMonth());
localDateTime = localDateTime.withHour(23);
localDateTime = localDateTime.withMinute(59);
localDateTime = localDateTime.withSecond(59);
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);
Instant instant = zonedDateTime.toInstant();
Date date = Date.from(instant);
return date;
}
获取月份1号的日期格式,例如20200501
/**
* 获取月份1号的日期格式
*
* @param monthsToSubtract 月份减N
* @param pattern 日期格式
* @return
*/
public static String getFirstDayOfMonthDateFormat(long monthsToSubtract, String pattern) {
LocalDate localDate = LocalDate.now();
localDate = localDate.minusMonths(monthsToSubtract).with(TemporalAdjusters.firstDayOfMonth());
return localDate.format(DateTimeFormatter.ofPattern(pattern));
}
获取当前月的某天 \获取当前月份
/**
* 获取当前月份
*
* @return
*/
public static int getNowMonth() {
return LocalDate.now().getMonthValue();
}
/**
* 获取当前月的某天
*
* @return
*/
public static int getDayOfMonth() {
return LocalDate.now().getDayOfMonth();
}