Java新增的日期時間格式器

在java.time.format包下提供一個DateTimeFormatter格式器類,該類至關於DateFormat和SimpleDateFormat的合體功能更強大。DateTimeFormat不只能夠將日期、時間對象格式化成字符串,也能夠將特定格式的字符串解析成日期、時間對象。爲使用DateTimeFormatter進行格式或解析,必須獲取DateTimeFormatter對象,獲取DateTimeFormatter對象有三種常見方式。直接使用靜態常量建立DateTimeFormatter格式器。(DateTimeFormat類中含有大量的形如ISO_LOCAL_DATE等靜態常量,這些常量自己就是DateTimeFormatter實例);使用表明不一樣風格的枚舉值來建立DateTimeFormat格式器;根據模式字符串來建立DataTimeFormatter格式器 。java

1.  DateTimeFormatter一般調用format(TemporalAccessor temporal)方法執行格式化,其中LocalDate、LocalDateTime、LocalTime等類都是TemporalAccessor接口的實現類,另外就是調用LocalDate、LocalDateTime、LocalTime等日期、時間對象的format(DateTimeFormatter formatter)方法執行格式化。code

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)方法來進行解析。orm

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);
	}
}
相關文章
相關標籤/搜索