Java新增的日期时间格式器

本文介绍了Java中使用java.time.format包下的DateTimeFormatter类进行日期和时间的格式化及解析的方法。通过实例展示了如何创建DateTimeFormatter对象,并利用这些对象将日期时间格式化为字符串,以及如何将特定格式的字符串解析为日期时间对象。

在java.time.format包下提供一个DateTimeFormatter格式器类,该类相当于DateFormat和SimpleDateFormat的合体功能更强大。DateTimeFormat不仅可以将日期、时间对象格式化成字符串,也可以将特定格式的字符串解析成日期、时间对象。为使用DateTimeFormatter进行格式或解析,必须获取DateTimeFormatter对象,获取DateTimeFormatter对象有三种常见方式。直接使用静态常量创建DateTimeFormatter格式器。(DateTimeFormat类中含有大量的形如ISO_LOCAL_DATE等静态常量,这些常量本身就是DateTimeFormatter实例);使用代表不同风格的枚举值来创建DateTimeFormat格式器;根据模式字符串来创建DataTimeFormatter格式器 。

1.  DateTimeFormatter通常调用format(TemporalAccessor temporal)方法执行格式化,其中LocalDate、LocalDateTime、LocalTime等类都是TemporalAccessor接口的实现类,另外就是调用LocalDate、LocalDateTime、LocalTime等日期、时间对象的format(DateTimeFormatter formatter)方法执行格式化。

package com.lanou.test;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;

public class Demo008 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		DateTimeFormatter[] dateTimeFormatters=new DateTimeFormatter[]{
				DateTimeFormatter.ISO_LOCAL_DATE,
				DateTimeFormatter.ISO_LOCAL_TIME,
				DateTimeFormatter.ISO_LOCAL_DATE_TIME,
				
				DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL,FormatStyle.MEDIUM),
				DateTimeFormatter.ofLocalizedTime(FormatStyle.LONG),
				
				DateTimeFormatter.ofPattern("Gyyyy--MMM--dd  HH:MM:SS")
		};
		LocalDateTime date=LocalDateTime.now();
		for(int i=0;i<dateTimeFormatters.length;i++){
			System.out.println(date.format(dateTimeFormatters[i]));
			System.out.println(dateTimeFormatters[i].format(date));
		}
	}
}

结果:
2016-07-12
2016-07-12
21:11:17.419
21:11:17.419
2016-07-12T21:11:17.419
2016-07-12T21:11:17.419
2016年7月12日 星期二 21:11:17
2016年7月12日 星期二 21:11:17
下午09时11分17秒
下午09时11分17秒
公元2016--七月--12  21:07:41
公元2016--七月--12  21:07:41

2.为了使用DateTimeFormatter将指定格式的字符串解析成日期、时间对象(LocalDate、LocalDateTime、LocalTime等实例),可通过日期、事件对象提供的parse(CharSequence text,DateTimeFormat format)方法来进行解析。

package com.lanou.test;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Demo009 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str="2016--07--12";
		DateTimeFormatter fomaDateTimeFormatter=DateTimeFormatter.
				ofPattern("yyyy--mm--dd");
		LocalDateTime dt1=LocalDateTime.parse(str,fomaDateTimeFormatter);
		System.out.println(dt1);
	}
}

 

转载于:https://my.oschina.net/zkctt/blog/710801

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值