DateTimeFormatter类[java]

DateTimeFormatter类的使用

格式化解析日期时间的类(解析我们的LocalDateTime,LocalDate,LocalTime类)

DateTimeFormatter类的全类名:

java.time.format.DateTimeFormatter

实例化

我们DateTimeFormatter类的实例化方式一共有三种

方式一:

预定义的标准格式 ---- 调用这几个静态常量

  • 使用预定义的标准格式创建的DateTImeFormatter对象只能是默认的格式
    • 这种预定义的方式创建的DateTimeFormatter对象格式化和解析的格式和LocalDateTime,LocalDate,LocalTime对象使用打印(也就是默认调用toString()方法)方法输出的格式相同
  1. ISO_LOCAL_DATE_TIME

    DateTimeFormatter formatter = DateTimeForMatter.ISO_LOCAL_DATE_TIME;

    • 这里我们就创建出了一个DateTimeFormatter对象,然后我们就可以这个创建出的对象去调用格式化(format())和解析方法(parse())
  2. IOS_LOCAL_TIME

  3. IOS_LOCAL_TIME

方式二:

本地化相关的格式: —调用以下三种静态方法方法

  1. ofLocalLizedDateTime();

    • 这个方法中可以传入三个参数
        1. FormatStyle.LONG
        2. FormatStyle.SHORT
        3. FormatStyle.MEDIUM
    • 使用这个方法创建出来的DateTimeFormatter对象用来解析和格式化LocalDateTime类的对象

    eg:

    DateTimeFormatter Formatter = DateTImeFormatter.ofLocalLizedDateTime();
    
    • 这里就是创建出了一个DateTimeFormatter类的对象,这个时候我们就可以通过这个对象去调用格式化和解析的方法
  2. ofLocalLizedDate();

    • 这个方法可以传入三个参数
      • 多了一个FormatStyle.FULL
    • 这个方法创建出来的DateTimeFormatter对象用来解析和格式化LocalDate类的对象
  3. ofLocalLizedTIme();

    • 这个就是用来格式化和解析LocalTime对象的

方式三:

自定义的格式创建----调用ofPattern(String pattern)方法

  • 这里的pattern代表的就是一种模式

  • 在我们的实际编程中一般都是使用自定义格式创建DateTimeFormatter的对象

我们调用ofPattern()方法可以创建一个自定义格式的DateTimeFormatter对象

eg:

DateTimeFormatter Formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH-mm-ss");
  • 这里y表示年
  • 这里的M表示月
  • 这里的d表示日期
  • 这里的H表示小时(全天计算)
  • h表示小时(分上午,下午)
  • 这里的m表示分钟
  • 这里的s表示秒
  • E表示星期几

格式化:

调用format()方法

  • 我们的解析和我们的格式化都是非静态方法,都需要我们创建DateTimeFormatter对象之后通过对象调用

eg:

String str = formatter.format(LocalDateTime.now());
  • 我们的DateTImeFormatter类中的format()方法就是将我们的LocalDateTIme(还有LocalDate,LocalTime)对象转为String
  • 我们的DateTImeFormatter类中的format(TemporalAccessor temporal)方法中的形参是TemporalAccessor接口类型的,而我们的LocalDateTime,LocalDate,LocalTime这三个类都实现了Temporal接口,而Temporal接口又继承了TemporalAccessor接口
  • 所以我们在这个format()方法中传入LocalDateTime这三个类都是构成了多态

解析:

调用parse()方法

  • 我们的格式化和解析方法都是非静态方法,都需要我们创建DateTimeFormatter对象之后通过对象调用

eg:

TemporalAccessor accessor = formatter.parse("2019-02-18 03:52:09");
  • 我们这里的TemporalAccessor是一个接口,而我们的LocalDateTime,LocalDate,LocalTime这三个类都实现了Temporal接口,而Temporal接口又继承了TemporalAccessor接口,这里就是形成了多态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值