Joda-Time DateTimeFormatter 日期格式
2018-11-29 本文已影响1261人
ba2cb747365a
一、前言
在进行开发工作中,经常会面对两种情况。一是需要把时间格式化成字符串后存储下来。二是需要把格式化好的字符串解析成时间进行运算。Joda-Time针对这两个核心需求的解决方案就是DateTimeFormatter,DateTimeFormatter在解析时支持时区。
二、核心对象:
2.1 DateTimeFormatter
日期格式化与解析
2.2 LocalDate
本地日期(没有时间,没有时区)
2.3 LocalTime
本地时间(没有日期,没有时区)
2.4 LocalDateTime
本地日期时间(没有时区)
三、正文
用yyyy-MM-dd格式打印出当前日期
//当前本地日期,没有时区
LocalDate date = LocalDate.now();
//时间日期格式化,表达式与熟知的一样
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd");
//2018-11-29
String dateStr = fmt.print(date);
用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);
解析 2019-10-28 10:23:12
String dateStr = "2019-10-28 10:23:12";
//日期解析,通用时间表达式
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
//2019-10-28T10:23:12.000+08:00
DateTime dateTime = fmt.parseDateTime(dateStr);
解析 伦敦时区 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);