Java学习笔记-日期类

Date(第一代)

java.util.Date

一个日期类

构造方法

1.Date()

分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。

Date date1=new Date();  //该对象为当前时间
System.out.println(date1);

//输出Mon Sep 13 14:50:16 CST 2021

这样拿到的是 当前系统的时间 单格式不是我们习惯的格式

2.Date(long date)

分配 Date 对象并初始化此对象,表示的时间为 1970年+2124124毫秒

Date date2=new Date(2124124); //对象为1970+2124124毫秒后的时间
System.out.println(date2);

//输出Thu Jan 01 08:35:24 CST 1970

参数为一个毫秒值(L类型的),创建这个对象表示的时间就是 基准时间+毫秒值的得时间 1秒=1000毫秒

成员方法

1. long getTime()

返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

Date date1=new Date();
System.out.println(date1.getTime());
//1631516148002

SimpleDateFormat

java.text.SimpleDateFormat

是DateFormat的实现子类 日期格式化类

构造方法

1.SimpleDateFormat(String pattern)

规定格式化模式

 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E");
//输出形式2021年09月13日 14:59:08 星期一

Pattern 为模式, 可自我设定 列:“yyyy-MM-dd HH-mm-ss” 打印出来是“2020-01-05 22-30-15” 注:可以将其中的 - 换成 ‘年’‘月’等其他的的不能换

​ y 年
​ M 月
​ d 天
​ H (0-23)时
​ h (0-11)时
​ E 星期中的天数
​ m 分
​ s 秒
​ S 毫秒

成员方法

1.String format(Date date)

​ 将一个 Date 格式化为日期/时间字符串。

 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E");
 String format = simpleDateFormat.format(new Date());
//输出2021年09月13日 14:59:08 星期一

​ 将系统格式转成 我们传的固定格式,返回字符串

2.Date parse(String source)
Date date = simpleDateFormat.parse("2021年09月13日 14:59:08 星期一");

将一个字符串按照之前规定的模式转换成一个Date对象

该方法会抛出异常

Calendar (第二代)

java.util.Calendar

是一个日历类 使用起来非常灵活

注:这个类是抽象类 但是他有一个成员方法可以得到他的实现子类(GregorianCalendar)

构造方法

1.protected Calendar()

该类构造方法私有化,只能通过成员方法getInstance()获取该对象

成员方法

1.static Calendar getInstance();

有多个重载方法,一般不使用

Calendar calendar = Calendar.getInstance();  //只能通过该方法获取 日历对象 时间为当前时间

获取一个日历对象

2.int get(int field)
Calendar calendar = Calendar.getInstance();  //只能通过该方法获取 日历对象 时间为当前时间	
		calendar.get(Calendar.YEAR);  //获得年份
        calendar.get(Calendar.MONTH+1);  //获得月份 默认是0-11 要+1
        calendar.get(Calendar.DATE);  //获得日
        calendar.get(Calendar.HOUR);  //获得时
        calendar.get(Calendar.MINUTE);  //获得分
        calendar.get(Calendar.SECOND);  //获得秒
        calendar.get(Calendar.DAY_OF_WEEK);  //获得星期

想获取那个值就获取哪个值

想怎么输出时间格式就怎么输出时间格式,非常灵活

3.void set(int field, int value)

​ 将给定的日历字段设置为给定值。

Calendar calendar = Calendar.getInstance();  
        System.out.println(calendar.get(Calendar.YEAR));  //获得年份);
        System.out.println("设置年份========");
        calendar.set(Calendar.YEAR,2077);
        System.out.println(calendar.get(Calendar.YEAR));  //获得年份);
//输出
2021
设置年份========
2077

4.void add(int field, int amount)

​ 根据日历规则,将指定的(有符号的)时间量添加到给定的日历字段中。

5.Date getTime()
Calendar calendar = Calendar.getInstance();   
Date date = calendar.getTime();

获取一个date对象

静态成员参数

可通过折现参数获取对应的值

1.YEAR 年
2.MONTH 月
3.DATE 天
4.DAY_OF_MONTH 天
5.HOUR 时
6.MINUTE 分
7.SECOND 秒

等等…

LocalDateTime(第三代)

java.time.LocalDateTime

第三代时间类 可以相对于Date 内部方法众多;并且在多线程方面

构造方法

私有

成员方法

1.LocalDateTime now()

用于获取LocalDateTime对象

LocalDateTime localDateTime = LocalDateTime.now(); //获取日期对象
2.int getXxxx()

获取指定的时间值

LocalDateTime localDateTime = LocalDateTime.now(); //获取日期对象	localDateTime.getYear();    localDateTime.getMonthValue();    localDateTime.getDayOfMonth();    localDateTime.getHour();    localDateTime.getMinute();    localDateTime.getSecond();    localDateTime.getDayOfWeek();

方法有很多,可以在JDK8上查看

3.LocalDateTime pulsXxxx(Int value)

将当前日期类的时间增加 某天/年/月 等等 以方法而定

LocalDateTime localDateTime = LocalDateTime.now(); //获取日期对象System.out.println(localDateTime.getDayOfMonth()); //打印日期LocalDateTime newLocalDateTime = localDateTime.plusDays(10); //添加日期System.out.println(newLocalDateTime.getDayOfMonth()); //再次输出日期//输出1323
4.LocalDateTime minusXxxx(Int value)

将当前日期类的时间减少 某天/年/月 等等 以方法而定

LocalDateTime localDateTime = LocalDateTime.now(); //获取日期对象System.out.println(localDateTime.getDayOfMonth()); //打印日期LocalDateTime newLocalDateTime2 = localDateTime.minusDays(10); //减少日期System.out.println(newLocalDateTime2.getDayOfMonth()); //再次输出日期

DateTimeFormatter

java.time.DateTimeFormatter

一个日期格式化类 相当于SimpleDateFormat类

构造方法

成员方法

1.DateTimeFormatter ofPattern(“string”)
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss E");

可以得到一个已规定格式的一个的dateTimeFormatter工具类

2.String format(LocalDateTime localDateTime)

将一个LocalDateTime 对象进行格式化 并返回格式化后的字符串

LocalDateTime localDateTime = LocalDateTime.now(); //获取日期对象DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss E");String format = dateTimeFormatter.format(localDateTime);

Instant

java.time.instant

时间戳 可以和Date对等 并且二者可以相互转换

成员方法
1.Instant now()
Instant instant = Instant.now();//输出2021-09-13T09:21:38.040Z

获取对象

输出内容个Date略有不同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值