JDK1.8 新特性之时间相关

本文详细介绍了Java 8中LocalDateTime工具类的使用,包括获取当前月日期范围、计算日期间隔、时间转换以及日期格式化等功能。提供了多个实用方法的代码示例,便于理解和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、参考文章

​​十分详细的jdk8时间相关操作以及知识点(文章很长)

LocalDateTime工具类:根据当前、周、月、季度、半年、年等维度获取时间

二、常用

    /**
     * <p>获取当前月的范围内的所有时间<p>
     */
    public static void between(){
		LocalDateTime first = LocalDateTime.of(LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()), LocalTime.MIN);

        List list = new ArrayList<>();
        Stream.iterate(first, date -> date.plusDays(1)).limit(LocalDate.now().lengthOfMonth())
                .forEach(date -> list.add(date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))));
        return list;
    }
    /**
     * 两个日期间隔天数
     * @param day0
     * @param day1
     * @return long
     */
    public static long daysInterval(LocalDate day0, LocalDate day1) {
        return DAYS.between(day0, day1);
    }
    /**
     * 时间:localDateTime -》 Date
     * @return java.util.Date

     */
    public static Date localDateTime2Date(LocalDateTime localDateTime) {
        return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
    }
    /**
     * 时间:字符串 -》 Date
     * @param date
     * @param datePattern
     * @return java.util.Date
     */
    public static Date string2Date(String date, String datePattern) {
        return Date.from(LocalDateTime.parse(date, DateTimeFormatter.ofPattern(datePattern)).atZone(ZoneId.systemDefault()).toInstant());
    }
  
 
    /**
     * 时间:Date -》  字符串
     * @param date
     * @param datePattern
     * @return java.util.Date
     */
    public static String date2String(Date date, String datePattern) {
        return date.toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime().format(DateTimeFormatter.ofPattern(datePattern));
    }
   
    /**
     * 时间:Date -》  LocalDate
     * @param date
     * @return java.util.Date
     */
    public static LocalDate date2LocalDate(Date date) {
        return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
    }
    /**
     * 字符串 -》 LocalDate
     * @param date
     * @param datePattern
     * @return java.time.LocalDate
     */
    public static LocalDate string2LocalDate(String date,String datePattern) {
        return LocalDate.parse(date, DateTimeFormatter.ofPattern(datePattern));
    }
    /**
     * 字符串 -》 LocalDateTime
     * @param date
     * @param datePattern
     * @return java.time.LocalDateTime
     */
    public static LocalDateTime string2LocalDateTime(String date,String datePattern) {
        return LocalDateTime.parse(date, DateTimeFormatter.ofPattern(datePattern));
    }

    /**
     * <p>将时间格式化成字符串<p>
     * @author penghao.wang
     * @date 2022/5/7 10:51
     * @param localDateTime
     * @param pattern 时间格式,如yyyy-MM-dd等
     * @return java.lang.String
     */
    public static String localDateTime2String(LocalDateTime localDateTime,String pattern){
        return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
    }
    /**
     * <p>将时间格式化成字符串<p>
     * @param localDate
     * @param pattern 时间格式,如yyyy-MM-dd等
     * @return java.lang.String
     */
    public static String localDate2String(LocalDate localDate,String pattern){
        return localDate.format(DateTimeFormatter.ofPattern(pattern));
    }

三、注意

1、HH是24小时制,hh是12小时制。大写的H是二十四小时制的小时数(0-23),小写的h是十二小时制的小时数(am/pm 1-12)


记录一些常用的,未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值