java中的时间日期类

计算机中的时间原点
1970年1月1日 00:00:00

我国的时间原点则是:1970年1月1日 08:00:00

Date类常用的构造方法
public Date(); // 空参构造,表示默认时间也就是电脑的当前时间。
public Date(long date); // 有参构造,表示指定时间。

Date类常用的成员方法
public long getTime(){} // 获取时间对象的毫秒值。
public void setTime(long time){} // 设置时间,传递时间原点所过的毫秒值。

SimpleDateFormat类——对Date对象进行格式化和解析
常用字母对应解析如下:(区分大小写)
y —— 年
M —— 月
d —— 日
H —— 时
m —— 分
s —— 秒

SimpleDateFormat类的构造方法
public SimpleDateFormat() // 空参构造,使用默认格式。
public SimpleDateFormat(String pattern) // 有参构造,将对应字母以字符串的形式传入你想要的格式。

SimpleDateFormat格式化和解析日期
1.格式化:将Date的时间格式化为日期字符串

		Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(date);
        System.out.println(sdf.format(date));

打印结果:
Mon Feb 21 15:26:57 CST 2022
2022-02-21 15:26:57

2.解析:将日期字符串解析为时间

		String s = "2022-02-21 15:26:57";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
        //这里的格式必须跟字符串的格式一模一样
        Date date = sdf.parse(s); // 这里会有异常,直接throws抛出就行
        System.out.println(date);
        
打印结果:
Mon Feb 21 15:26:57 CST 2022

JDK8新增的日期类
JDK8中将Date对象分成了以下三个类:
LocalDate:表示年月日。
LocalTime:表示时分秒。
LocalDateTime:便是年月日 时分秒。
(最常用的时LocalDateTime类)

LocalDateTime类
1.public static LocalDateTime now() // 获取系统当前时间的方法。
2.public static LocalDateTime of(年,月,日,时,分,秒) // 传入对应int值返回时间格式的方法。

LocalDateTime类的获取方法
public int getYear() // 获取年。
public int getMonthValue() // 获取月。
public int getDayOfMonth() // 获取月中第几天。
public int getDayOfYear() // 获取年中第几天。
public DayOfWeek() // 获取星期。
public int getMinute() // 获取分钟。
public int getHour() // 获取小时。

LocalDateTime类的转换方法
public LocalDate toLocalDate() // 去除时分秒
public LocalDate toLocalTime() // 去除年月日

LocalDateTime类的格式化和解析
public String format(指定格式) // 把一个LocalDateTime对象按指定格式转换成一个字符串。
public LocalDateTime parse(待解析的字符串,解析格式) // 把日期字符串解析为一个LocalDateTime对象。
JDK8中的格式化器:public static DateTimeFormatter ofPattern(String pattern) // 按照传入的字符串格式 创建一个DateTimeFormatter格式化器对象。

格式化

		// 获取LocalDateTime对象
        LocalDateTime now = LocalDateTime.now();
        System.out.println("格式化前 " + now);
        // 获取格式化器
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        String s_now = now.format(dateTimeFormatter);
        System.out.println("格式化后 " + s_now);

打印结果:
格式化前 2022-02-21T16:51:27.098
格式化后 2022022116:51:27

解析

		String s = "2022年02月21日 16:51:27";
        System.out.println("解析前 " + s);
        // 获取格式化器
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        LocalDateTime localDateTime = LocalDateTime.parse(s, dateTimeFormatter);
        System.out.println("解析后 " + localDateTime);

打印结果:
解析前 2022022116:51:27
解析后 2022-02-21T16:51:27

LocalDateTime类的plus系列方法
先要获取LocalDateTime对象再调用,传正值加 负值减。
public LocalDateTime plusYear(long year) // 年加或年减。
public LocalDateTime plusMonths(long month) // 月加或月减。
public LocalDateTime plusDays(long day) // 日加或日减。
public LocalDateTime plusHours(long hour) // 时加或时减。
public LocalDateTime plusMinutes(long minute) // 分加或分减。
public LocalDateTime plusSeconds(long second) // 秒加或秒减。
public LocalDateTime plusWeeks(long week) // 周加或周减。

LocalDateTime类的minus系列方法
先要获取LocalDateTime对象再调用,与plus相反。
public LocalDateTime minusYear(long year) // 年减或年加。
public LocalDateTime minusMonths(long month) // 月减或月加。
public LocalDateTime minusDays(long day) // 日减或日加。
public LocalDateTime minusHours(long hour) // 时减或时加。
public LocalDateTime minusMinutes(long minute) // 分减或分加。
public LocalDateTime minusSeconds(long second) // 秒减或秒加。
public LocalDateTime minusWeeks(long week) // 周减或周加。

LocalDateTime类的with系列方法
先要获取LocalDateTime对象再调用。(注意传递有效值)
public LocalDateTime withYear(int year) // 直接修改年
public LocalDateTime withMonth(int month) // 直接修改月
public LocalDateTime withDayOfMonth(int dayofmonth) // 直接修改天(一个月中的第几天)
public LocalDateTime withDayOfYear(int dayofyear) // 直接修改天(一年中的第几天)
public LocalDateTime withHour(int hour) // 直接修改时
public LocalDateTime withMinute(int minute) // 直接修改分
public LocalDateTime withSecond(int second) // 直接修改秒

Period类时间间隔对象
public static Period between(开始时间,结束时间) // 计算出时间间隔并返回Period对象。(传入的时间都是LocalDate对象)
public int getYears() // 获取间隔对象的间隔年数。
public int getMonths() // 获取间隔对象的间隔月数。(忽略年的月差)
public int getDays() // 获取间隔对象的间隔天数。
public long toTotalMonths() // 获取间隔对象的间隔总月数。(不忽略年的总月数)

Duration类时间间隔对象
public static Duration between(开始时间,结束时间) // 计算出时间间隔并返回Period对象。(形参是接口类,可以传LocalDateTime对象)
public long toDays() // 获取间隔的天数
public long toHours() // 获取间隔的小时数
public long totoMinutes() // 获取间隔的分钟数
public long toMillis() // 获取间隔的毫秒数
public long toNanos() // 获取间隔的纳秒数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值