DateTimeFormatter的用法

DateTimeFormatter
前言
一、使用java类库
二、使用步骤
1.LocalDate转换
2.LocalDateTime 的转换
前言
使用旧的Date对象时,我们用**SimpleDateFormat**进行格式化显示。使用新的LocalDateTime或ZonedLocalDateTime时,我们要进行格式化显示,就要使用DateTimeFormatter。
和SimpleDateFormat不同的是,DateTimeFormatter不但是不变对象,它还是线程安全的。
因为SimpleDateFormat不是线程安全的,使用的时候,只能在方法内部创建新的局部变量。
而DateTimeFormatter可以只创建一个实例,到处引用。

创建DateTimeFormatter时,我们仍然通过传入格式化字符串实现:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
1
格式化字符串的使用方式与SimpleDateFormat完全一致。

另一种创建DateTimeFormatter的方法是,传入格式化字符串时,同时指定Locale:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("E, yyyy-MMMM-dd HH:mm", Locale.US);
1
这种方式可以按照Locale默认习惯格式化。

一、使用java类库
import java.time.format.DateTimeFormatter;

二、使用步骤
1.LocalDate转换
代码如下(示例):

//解析日期
String dateStr= "2016年10月25日";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
//LocalDate练习
LocalDate date= LocalDate.parse(dateStr, formatter);
System.out.println(date);
String format1 = date.format(formatter);
System.out.println(format1);
2016-10-25
2016年10月25日

2.LocalDateTime 的转换
代码如下(示例):

//LocalDateTime练习
String dateTimeStr= "2016-10-25 12:00:00";
DateTimeFormatter formatter02 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime=LocalDateTime.parse(dateTimeStr,formatter02);
System.out.println(localDateTime);
String format = localDateTime.format(formatter02);
System.out.println(format);
2016-10-25T12:00
2016-10-25 12:00:00

## 3.一般常见的时间格式
这里采用的话呢可以使用枚举类也可以是接口(DateConstants)
代码如下(示例):

/** 默认的时间格式为"yyyy-MM-dd HH:mm:ss",若后续有其他需求,则可以另行添加 */
static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";

/** 格式 "yyyy/MM/dd HH:mm:ss" */
static final String DEFAULT_DATE_FORMAT_2 = "yyyy/MM/dd HH:mm:ss";

/** 格式 "yyyy-MM-dd" */
static final String DATE_FORMAT = "yyyy-MM-dd";

static final String DATE_FORMAT_2 = "yyyy/MM/dd";

/** 格式 "yyyy-MM" */
static final String MONTH_FORMAT = "yyyy-MM";

static final String MONTH_FORMAT_2 = "yyyy/MM";

// 默认的时间格式为"yyyy/MM/dd HH:mm:ss",若后续有其他需求,则可以另行添加
static DateTimeFormatter defaultFormatter = DateTimeFormat.forPattern(DEFAULT_DATE_FORMAT);

// 当前日期标签,很多类似日志文件需要打时间标签
static final String DATE_MARK = "yyyyMMdd";

// 默认的时间格式
//private static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";
static final String HOUR_MINUTE = "HH:mm";

/**
* 默认的stringbuffer 长度,
* stringbuffer 的默认长度是16,
* 增长策略是每次增加16字节,
* so可以一次性申请100个字节,提交效率
*/
int DEFAULT_STRINGBUFFER_LENGTH = 100;

/** 响应状态: STATUS_OK = 1 */
static final int DB_INSERT_OK = 1;
/** 星期一 1 */
int MONDAY = 1;
int TUESDAY =2;
int WEDNESDAY = 3;
int THURSDAY = 4;
int FRIDAY = 5;
int ALLWEEK = 0;

// 公司名称
static final String COMPANY_NAME = "XXXXX";
————————————————
版权声明:本文为CSDN博主「小七会喷火」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Javabaibai/article/details/112213051

posted @ 2022-06-21 13:34  mao的博客  阅读(2577)  评论(0编辑  收藏  举报