java中有关时间的类合集

今日摘录

儿食剩骨, 正餐奉母

在这里插入图片描述

在Java中,生成时间的类主要集中在java.utiljava.time包中。以下是详细的介绍:

java.util 包

Date

    构造方法:
        Date(): 创建一个表示当前时间的对象。
        Date(long date): 使用给定的毫秒数创建一个日期对象。
    说明:遗留类,不推荐用于新的开发。

Calendar

    构造方法:
        Calendar类本身是抽象类,无法直接实例化,通常使用getInstance()静态工厂方法来获取其子类(如GregorianCalendar)的一个实例。
    说明:提供了更灵活的时间操作能力,但也是遗留类。

GregorianCalendar

    构造方法:
        GregorianCalendar()
        GregorianCalendar(Locale aLocale)
        GregorianCalendar(TimeZone zone)
        GregorianCalendar(TimeZone zone, Locale aLocale)
        GregorianCalendar(int year, int month, int dayOfMonth)
        GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute)
        GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
    说明:Calendar的具体实现,提供了公历系统的日期操作。

java.time 包 (自 Java 8 引入)

LocalDate

    构造方法:
        主要通过静态工厂方法创建实例,例如of(int year, Month month, int dayOfMonth)或now()等。
    说明:只包含日期,不含时区信息。

LocalTime

    构造方法:
        同样主要通过静态工厂方法创建实例,如of(int hour, int minute)等。
    说明:只包含时间,不含时区信息。

LocalDateTime

    构造方法:
        静态工厂方法,如of(LocalDate date, LocalTime time)等。
    说明:包含日期和时间,没有时区信息。

ZonedDateTime

    构造方法:
        静态工厂方法,如of(LocalDateTime localDateTime, ZoneId zone)等。
    说明:包含日期、时间和时区信息。

OffsetDateTime

    构造方法:
        静态工厂方法,如of(LocalDateTime localDateTime, ZoneOffset offset)等。
    说明:存储固定偏移量的时间点。

Instant

    构造方法:
        Instant()(已废弃),应该使用now()等静态工厂方法。
    说明:表示时间线上的瞬间,从Unix纪元开始计算。

Duration

    构造方法:
        Duration(long seconds, long nanos)
        主要通过静态工厂方法创建,如between(Temporal startInclusive, Temporal endExclusive)等。
    说明:基于秒和纳秒计算两个时间点之间的时间量。

Period

    构造方法:
        Period(int years, int months, int days)
        静态工厂方法,如between(LocalDate startDateInclusive, LocalDate endDateExclusive)等。
    说明:描述两个日期之间的年月日数量。

DateTimeFormatter

    构造方法:
        私有构造器,所以不能直接实例化;通过静态工厂方法创建格式化器,如ofPattern(String pattern)等。
    说明:提供日期和时间的格式化支持。

区别

设计哲学:旧类如Date和Calendar缺乏不可变性和线程安全性,API不够直观。而java.time包的设计更加现代,具有不可变性、线程安全以及更直观的API。
功能特性:java.time包提供了更为丰富和准确的功能,比如更好的时区处理、日期时间解析和格式化等。
易用性:新包中的类设计更为清晰,易于理解和使用,减少了错误的发生几率。

对于新的Java项目,强烈建议使用java.time包中的类来处理日期和时间,以获得更好的性能和易用性。此外,这些类的构造方法大多被静态工厂方法取代,以提供更加灵活和可读的实例化方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

With Order @!147

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值