JDK8中新增的时间类(一)

一、LocalDate、LocalTime、LocalDatetime

local家族各有各的用处,其中就属LocalDateTime既可以拿到时间也可以拿到日期

他们都有一个特点,就是要通过调用类中的静态方法来得到他们的对象,

而且一般都是通过调用XXX.now();来得到

import java.time.LocalDate;
import java.time.MonthDay;

public class LocalDateDemo {
    public static void main(String[] args) {
        LocalDate localDate = LocalDate.now();//它创建对象要用静态方法
        System.out.println(localDate);
        System.out.println(localDate.getMonth().getValue());//提取出月份
        LocalDate birthday = LocalDate.of(2001,4,23);
        MonthDay monthDay = MonthDay.from(localDate);//将月份和日期提取出来
        MonthDay birthMonth = MonthDay.of(birthday.getMonth().getValue(),birthday.getDayOfMonth());//也可以这样
        System.out.println("今天是你的生日吗?"+monthDay.equals(birthMonth));
    }
}

二、instant

它是一个时间戳,默认输出的是标准时间

import java.time.Instant;
import java.time.ZoneId;
import java.util.Date;

public class InstantDemo {
    public static void main(String[] args) {
        Instant instant1 = Instant.now();
        System.out.println(instant1);//默认打出标准时间的时间戳
        //2022-04-23T12:34:55.334439300Z
        //如果要调用系统默认的时区的话,用这个方法
        System.out.println(instant1.atZone(ZoneId.systemDefault()));//因为它返回的是ZonedDateTime,可以直接用输出语句输出
        //2022-04-23T20:39:00.407616400+08:00[Asia/Shanghai]
        //instant对象可以和date对象进行互相转换
        Date d1 = Date.from(instant1);
        System.out.println(d1);
        Instant instant2= d1.toInstant();
        System.out.println(instant2);
    }
}

三、DateTimeFormat

它是新增的时间日期格式化类,相比于原来的simpledateformat有一些好处。

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class DateTimeFormatDemo {
    //jdk8 中新增的日期格式化器
    public static void main(String[] args) {
        LocalDateTime dateTime1 = LocalDateTime.now();
        System.out.println(dateTime1);
        DateTimeFormatter f1 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss EEE a");//设置格式类型
        String s2 = f1.format(dateTime1);//它返回的类型是String
        System.out.println(s2);
        System.out.println(f1.format(dateTime1));//日期格式化器特别灵活,可以自己调用format格式化时间对象
        //也可以时间对象调用format来格式化它,都可以将时间对象格式化
        System.out.println(dateTime1.format(f1));
        //也可以用来解析字符串时间
        DateTimeFormatter f2 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        String st = "2009年01月08日 20:11:22";
        LocalDateTime dateTime2 = LocalDateTime.parse(st,f2);
        System.out.println(dateTime2);
        //我发现用jdk8里面新增的日期格式化对象格式化字符串时间时,字符串的时间要严格与格式相同,MM月一定要两位数,同理dd日也是如此,要不然就会报错
        //而SimpleDateFormat就不会,但是SimpleDateFormat要抛出异常
    }
}

先写到这里吧~~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值