欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

DateTimeFormatter的用法

程序员文章站 2022-06-28 16:15:06
DateTimeFormatter提示:该文章的部分内容摘自廖雪峰微博,代码部分为自己测试内容文章目录DateTimeFormatter前言一、使用java类库二、使用步骤1.LocalDate转换2.LocalDateTime 的转换前言使用旧的Date对象时,我们用**SimpleDateFormat**进行格式化显示。使用新的LocalDateTime或ZonedLocalDateTime时,我们要进行格式化显示,就要使用DateTimeFormatter。和SimpleDateF...

DateTimeFormatter

提示:该文章的部分内容摘自廖雪峰微博,代码部分为自己测试内容



前言

使用旧的Date对象时,我们用**SimpleDateFormat**进行格式化显示。使用新的LocalDateTime或ZonedLocalDateTime时,我们要进行格式化显示,就要使用DateTimeFormatter。

和SimpleDateFormat不同的是,DateTimeFormatter不但是不变对象,它还是线程安全的
因为SimpleDateFormat不是线程安全的,使用的时候,只能在方法内部创建新的局部变量。
而DateTimeFormatter可以只创建一个实例,到处引用。

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

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");

格式化字符串的使用方式与SimpleDateFormat完全一致。

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

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("E, yyyy-MMMM-dd HH:mm", Locale.US);

这种方式可以按照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
		20161025

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";

本文地址:https://blog.csdn.net/Javabaibai/article/details/112213051