日期类

本文介绍了Java中Date类的构造方法和过时问题,然后探讨了Calender类的局限性,重点讲述了Java8引入的三代日期类如LocalDate、LocalTime、LocalDateTime,以及DateTimeFormatter用于日期格式化的功能,以及Instant时间戳的特性。
摘要由CSDN通过智能技术生成

一、Date类的概述和构造方法
        Date代表一个特定的时间,精确到毫秒(java.util.Date) 
public  Date()    分配一个Date对象,并初始化,以便它代表它被分配的空间
public  Date(long  date)    分配一个Date对象,并初始化,以表示它从标准基准时间起指定的毫秒数

getYear(),  获取年

getMonth(),   获取月份,从0开始

getDate(),  获取天数(当前月)

getDay(),  获取星期,从0开始(星期天是每周的第一天)

getTime(),  获取从1970.1.1 0:0:0到代码运行的那一行的时间

注:在程序编写前 new一个date,在代码编写完成时(运行前) new一个date,两个getTime()的差值就是程序运行的时间

这些方法都是已经过时的方法,已被弃用,在编写程序时不建议使用

 

 

二、Calender(日历)
         Calender类是一个抽象类,它为特定瞬间与一组诸如TEAR、MONTH、等日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。

注:① Calender类是一个抽象类,并且构造器是protect

       ② 可以通过getInstance() 来获取实例

对象的创建:

        Canlender  c  = Canlender.getInstance();

        Canender没有对应的格式化方法,所以需要自己来组合显示

 三、第三代日期类
         前两代的不足分析

        JDK1.0中包含了一个java.util.Date类,但是它的大多数方法已经在JDK1.1引入Can lender类之后被弃用了。而Can lender也存在问题。

① 可变性:像日期和时间这样的类应该是不可变的

② 偏移性:Date中的年份是从1900开始的,而月份都是从0开始

③ 格式化:格式化只对Date有用,Canlender则不行

④ 此外,它们也不是线程安全的,不能处理闰秒(每隔两天,多出一秒)等

第三代日期类的常见方法

1. LocalDate(日期/年月日)、LocalTime(时间/时分秒)、LocalDateTime(日期时间)  JDK8加入 

2. DateTimeFormatter格式日期类

        类似于SimpleDateFormat
 

DateTimeFormat  dtf  =  DateTimeFormatter.ofPatten(格式);

String  str  =  dtf.format(日期对象);

eg:DateTimeFormatter.ofPatten("yyyy年MM月dd日");

      //  使用DateTimeFormatter对象来进行格式化

String format  =  dateTimeFormat.format(LocalDateTime.now()); //格式化

3.Instant 时间戳

        类似于Date,提供了一系列和Date类转换的方式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值