当前位置: 首页>编程语言>正文

LocalDateTime工具类

一、问题描述
jdk8以前的Date、Calender类,处理转换繁琐,线程不安全

二、解决
jdk8使用LocalDate、LocalTime、LocalDateTime来处理日期和时间问题。

LocalDate 本地日期;LocalTime 本地时间;LocalDateTime 本地日期+时间

日期时间工具类:


package com.cebbank.cloudmall.controller;

import java.time.LocalDateTime;

import java.time.format.DateTimeFormatter;

import java.time.temporal.TemporalUnit;

/**

* 日期时间工具类

*/

public class LocalDateTimeUtils {

/**

    * 日期字符串按照指定pattern转换为LocalDateTime

    * @param dateTimeStr

    * @param pattern

    * @return

    */

    public static LocalDateTimeconverStrToLocalDateTime(String dateTimeStr,String pattern){

return LocalDateTime.parse(dateTimeStr, DateTimeFormatter.ofPattern(pattern));

    }

/**

    * LocalDateTime按照指定pattern转为字符串

    * @param localDateTime

    * @param pattern

    * @return

    */

    public static StringconvertDateTimeToStr(LocalDateTime localDateTime,String pattern){

return localDateTime.format(DateTimeFormatter.ofPattern(pattern));

    }

/**

    * 按照指定pattern获取当前时间字符串

    * @param pattern

    * @return

    */

    public static StringgetCurrentDateTime(String pattern){

return LocalDateTime.now().format(DateTimeFormatter.ofPattern(pattern));

    }

/**

    * 将一种格式的日期字符串转换为另一种格式

    * @param dateTimeStr

    * @param fromPattern

    * @param toPattern

    * @return

    */

    public static StringconvertDateTimeStrByPattern(String dateTimeStr,String fromPattern,String toPattern){

return LocalDateTime.parse(dateTimeStr,DateTimeFormatter.ofPattern(fromPattern)).format(DateTimeFormatter.ofPattern(toPattern));

    }

/**

    * 判断是否在某一时间段内

    * @param nowTime

    * @param startTime

    * @param endTime

    * @return

    */

    public static boolean betweenDateTime(LocalDateTime nowTime,LocalDateTime startTime,LocalDateTime endTime){

return nowTime.isAfter(startTime) && nowTime.isBefore(endTime);

    }

/**

    * 返回当前日期零点

    * @return

    */

    public static LocalDateTimegetZeroDateTime(){

return LocalDateTime.now().toLocalDate().atTime(0,0,0,0);

    }

/**

    * 获取当前时间前后的时间

    * @param dateTime

    * @param type

    * @param num

    * @return

    */

    public static LocalDateTimegetDateTime(LocalDateTime dateTime, TemporalUnit type,int num){

return dateTime.plus(num,type);

    }

/**

    * 获取两个时间的间隔天数(过了零点即算一天)

    * @param begin

    * @param end

    * @return

    */

    public static int getDaysBetweenTowDateTime(LocalDateTime begin,LocalDateTime end){

return begin.toLocalDate().until(end.toLocalDate()).getDays();

    }

}


https://www.xamrdz.com/lan/5o92016609.html

相关文章: