Joda-Time DateTimeFormatter 日期格式化与解析

 

一、前言

在进行开发工作中,经常会面对两种操作。
1、把时间对象格式化成字符串后存储下来
1、把格式化好的字符串解析成时间对象
Joda-Time为这两个核心需求的解决方案就是DateTimeFormatter。
额外提一点,DateTimeFormatter在格式化和解析时是支持时区的。

二、核心对象:

2.1 DateTimeFormatter

日期格式化与解析

2.2 LocalDate

本地日期(没有时间,没有时区)

2.3 LocalTime

本地时间(没有日期,没有时区)

2.4 LocalDateTime

本地日期时间(没有时区)

2.5 DateTime

日期时间(支持时区转换)

三、示例

1、当前日期yyyy-MM-dd格式化

        //当前本地日期,没有时区
        LocalDate date = LocalDate.now();
        //时间日期格式化,表达式与熟知的一样
        DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd");
        //2018-11-29
        String dateStr = fmt.print(date);

2、当前日期时间yyyy-MM--dd HH:mm:ss格式化

        //当前日期时间,没有时区
        LocalDateTime now = LocalDateTime.now();
        //日期格式化,通用时间表达式
        DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
        //2018-11-29 08:08:24
        String nowStr = fmt.print(now);

3、解析日期时间并使用系统时区(example: 2019-10-28 10:23:12 )

        String dateStr = "2019-10-28 10:23:12";
        //根据时间表达式生成DateTimeFormatter对象
        DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
        //2019-10-28T10:23:12.000+08:00
        DateTime dateTime = fmt.parseDateTime(dateStr);

3、解析日期时间并设置时区 (example:2019-10-28 10:23:12)

        String dateStr = "2019-10-28 10:23:12";
        //日期解析,通用时间表达式
        DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").withZone(DateTimeZone.forOffsetHours(6));
        //2019-10-28T10:23:12.000+06:00
        DateTime dateTime = fmt.parseDateTime(dateStr);

 参考:https://blog.csdn.net/belalds/article/details/89945248

你可能感兴趣的:(java)