1.格式化常量字符串
public class TimeFormatter {
//构造方法私有化:该类本身地方除外的其他地方无法实例化该类对象
private TimeFormatter() {
}
public static final String DATETIME_FORMATTER = "yyyy-MM-dd HH:mm:ss";
public static final String DATE_FORMATTER = "yyyy-MM-dd";
public static final String TIME_FORMATTER = "HH:mm:ss";
public static final String DATETIME_T_FORMATTER = "yyyy-MM-dd'T'HH:mm:ss";
}
2.DateTimeUtil日期时间工具类
public class DateTimeUtil {
/**
* 获取当前时间时间戳(long)
* @return
*/
public static long currentTimeMillis() {
return System.currentTimeMillis();
}
/**
* 获取当前日期(yyyy-MM-dd)
* @return
*/
public static LocalDate currentLocalDate() {
return LocalDate.now();
}
/**
* 获取当前时间(HH:mm:ss.SSS)
* @return
*/
public static LocalTime currentLocalTime() {
return LocalTime.now();
}
/**
* 获取当前日期时间(yyyy-MM-dd'T'HH:mm:ss.SSS)
* @return
*/
public static LocalDateTime currentLocalDateTime() {
return LocalDateTime.now();
}
/**
* 获取当前日期字符串(yyyy-MM-dd)
* @return
*/
public static String getCurrentDateStr() {
return DateTimeFormatter.ofPattern(TimeFormatter.DATE_FORMATTER).format(currentLocalDateTime());
}
/**
* 获取当前时间字符串(HH:mm:ss)
* @return
*/
public static String getCurrentTimeStr() {
return DateTimeFormatter.ofPattern(TimeFormatter.TIME_FORMATTER).format(currentLocalDateTime());
}
/**
* 获取当前日期时间字符串(yyyy-MM-dd HH:mm:ss)
* @return
*/
public static String getCurrentDateTimeStr() {
return DateTimeFormatter.ofPattern(TimeFormatter.DATETIME_FORMATTER).format(currentLocalDateTime());
}
/**
* 将时间字符串转为自定义时间格式的LocalDateTime
* @param time 需要转化的时间字符串
* @param format 自定义的时间格式
* @return
*/
public static LocalDateTime convertStringToLocalDateTime(String time, String format) {
return LocalDateTime.parse(time,DateTimeFormatter.ofPattern(format));
}
/**
* 将LocalDateTime转为自定义的时间格式的字符串
* @param localDateTime 需要转化的LocalDateTime
* @param format 自定义的时间格式
* @return
*/
public static String convertLocalDateTimeToString(LocalDateTime localDateTime, String format) {
return localDateTime.format(DateTimeFormatter.ofPattern(format));
}
/**
* 将long类型的timestamp转为LocalDateTime
* @param timestamp
* @return
*/
public static LocalDateTime convertTimestampToLocalDateTime(long timestamp) {
return LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp),ZoneId.systemDefault());
}
/**
* 将LocalDateTime转为long类型的timestamp
* @param localDateTime
* @return
*/
public static long convertLocalDateTimeToTimestamp(LocalDateTime localDateTime) {
return localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
}
/**
* 获取LocalDateTime的最大时间的字符串格式(yyyy-MM-dd HH:mm:ss)
* @param localDateTime
* @return
*/
public static String getMaxDateTime(LocalDateTime localDateTime) {
return convertLocalDateTimeToString(localDateTime.with(LocalTime.MAX),TimeFormatter.DATETIME_FORMATTER);
}
/**
* 获取LocalDateTime的最小时间的字符串格式(yyyy-MM-dd HH:mm:ss)
* @param localDateTime
* @return
*/
public static String getMinDateTime(LocalDateTime localDateTime) {
return convertLocalDateTimeToString(localDateTime.with(LocalTime.MIN),TimeFormatter.DATETIME_FORMATTER);
}
/**
* 获取LocalDate的最大时间的字符串格式(yyyy-MM-dd HH:mm:ss)
* @param localDate
* @return
*/
public static String getMaxDateTime(LocalDate localDate) {
return convertLocalDateTimeToString(localDate.atTime(LocalTime.MAX),TimeFormatter.DATETIME_FORMATTER);
}
/**
* 获取LocalDate的最小时间的字符串格式(yyyy-MM-dd HH:mm:ss)
* @param localDate
* @return
*/
public static String getMinDateTime(LocalDate localDate) {
return convertLocalDateTimeToString(localDate.atTime(LocalTime.MIN),TimeFormatter.DATETIME_FORMATTER);
}
}
3.常见方法
. adjustInto 调整指定的Temporal和当前LocalDateTime对
. atOffset 结合LocalDateTime和ZoneOffset创建一个
. atZone 结合LocalDateTime和指定时区创建一个ZonedD
. compareTo 比较两个LocalDateTime
. format 格式化LocalDateTime生成一个字符串
. from 转换TemporalAccessor为LocalDateTi
. get 得到LocalDateTime的指定字段的值
. getDayOfMonth 得到LocalDateTime是月的第几天
. getDayOfWeek 得到LocalDateTime是星期几
. getDayOfYear 得到LocalDateTime是年的第几天
. getHour 得到LocalDateTime的小时
. getLong 得到LocalDateTime指定字段的值
. getMinute 得到LocalDateTime的分钟
. getMonth 得到LocalDateTime的月份
. getMonthValue 得到LocalDateTime的月份,从1到12
. getNano 得到LocalDateTime的纳秒数
. getSecond 得到LocalDateTime的秒数
. getYear 得到LocalDateTime的年份
. isAfter 判断LocalDateTime是否在指定LocalDateT
. isBefore 判断LocalDateTime是否在指定LocalDateT
. isEqual 判断两个LocalDateTime是否相等
. isSupported 判断LocalDateTime是否支持指定时间字段或单元
. minus 返回LocalDateTime减去指定数量的时间得到的值
. minusDays 返回LocalDateTime减去指定天数得到的值
. minusHours 返回LocalDateTime减去指定小时数得到的值
. minusMinutes 返回LocalDateTime减去指定分钟数得到的值
. minusMonths 返回LocalDateTime减去指定月数得到的值
. minusNanos 返回LocalDateTime减去指定纳秒数得到的值
. minusSeconds 返回LocalDateTime减去指定秒数得到的值
. minusWeeks 返回LocalDateTime减去指定星期数得到的值
. minusYears 返回LocalDateTime减去指定年数得到的值
. now 返回指定时钟的当前LocalDateTime
. of 根据年、月、日、时、分、秒、纳秒等创建LocalDateTi
. ofEpochSecond 根据秒数(从1970-01-0100:00:00开始)创建L
. ofInstant 根据Instant和ZoneId创建LocalDateTim
. parse 解析字符串得到LocalDateTime
. plus 返回LocalDateTime加上指定数量的时间得到的值
. plusDays 返回LocalDateTime加上指定天数得到的值
. plusHours 返回LocalDateTime加上指定小时数得到的值
. plusMinutes 返回LocalDateTime加上指定分钟数得到的值
. plusMonths 返回LocalDateTime加上指定月数得到的值
. plusNanos 返回LocalDateTime加上指定纳秒数得到的值
. plusSeconds 返回LocalDateTime加上指定秒数得到的值
. plusWeeks 返回LocalDateTime加上指定星期数得到的值
. plusYears 返回LocalDateTime加上指定年数得到的值
. query 查询LocalDateTime
. range 返回指定时间字段的范围
. toLocalDate 返回LocalDateTime的LocalDate部分
. toLocalTime 返回LocalDateTime的LocalTime部分
. toString 返回LocalDateTime的字符串表示
. truncatedTo 返回LocalDateTime截取到指定时间单位的拷贝
. until 计算LocalDateTime和另一个LocalDateTi
. with 返回LocalDateTime指定字段更改为新值后的拷贝
. withDayOfMonth 返回LocalDateTime月的第几天更改为新值后的拷贝
. withDayOfYear 返回LocalDateTime年的第几天更改为新值后的拷贝
. withHour 返回LocalDateTime的小时数更改为新值后的拷贝
. withMinute 返回LocalDateTime的分钟数更改为新值后的拷贝
. withMonth 返回LocalDateTime的月份更改为新值后的拷贝
. withNano 返回LocalDateTime的纳秒数更改为新值后的拷贝
. withSecond 返回LocalDateTime的秒数更改为新值后的拷贝
. withYear 返回LocalDateTime年份更改为新值后的拷贝