Java—格式化日期/時間


DateFormat

   DateFormat繼承MessageFormat,是實現日期格式化的抽象類。提供兩個方法:format()用於將數值或日期格化式成字符串;parse()方法用於將字符串解析成數值或日期。

parse()用法舉例:

String dateStr = "2019-12-10";
System.out.println(DateFormat.getDateInstance().parse(dateStr);

輸出結果:

Thur Dec 10 00:00:00 CST 2019

如何得到DateFormat對象?

  1. getDateInstance():返回一個只有日期,無時間的日期格式器;
  2. getImeInstance():返回一個只有時間,沒有日期的時間格式器;
  3. getDateTimeInstance():返回一個既有時間、又有日期的格式器。

SimpleDateFormat

   DateFormat在格式化日期時間方面顯得不夠靈活,需要特定的格式才能解析,為了更好的格式化Date,它的子類SimpleDateFormat出現了。
使用示例:

public class SimpleDateFormatTest{
	public static void main(String[] args) throws ParseException {
		Date date = new Date();
		//創建SimpleDateFormat對象;
		SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("Gyyyy年中第D天");
		// 將date日期解析為字符串
		String dateStr = simpleDateFormat1.format(date);
		System.out.println("公元日期表示: " + dateStr);
		
		String dateStr2 = "19###十二月##10";
		SimpleDateFormat simpleDateFormat2 = SimpleDateFormat("y###MMM##d");
		//將字符串解析成日期
		System.out.println("一般日期為: " + simpleDateFormat2.parse(dateStr2));
	}
}

輸出結果:

公元日期表示: 公元2020年中第77天
一般日期為: Thur Dec 10 00:00:00 CST 2019

DateTimeFormatter

   DateTimeFormatter是Java 8 中java.time.format包下新增的格式器類,不僅可以把日期或時間對象格式化成字符串,也可以把特定格式的字符串解析成日期或時間對象。
format()示例

public class DateTimeFormatterFormatTest{
	public static void main(String[] args) {
		
		LocalDateTime localDateTime = LocalDateTime.now();
		
		DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
		System.out.println(dateTimeFormatter.format(localDateTime ));
		System.out.println(localDateTime.format(dateTimeFormatter));
		//全日期時間
		DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL, FormatStyle.MEDIUM);
		System.out.println(dateTimeFormatter2.format(localDateTime ));
		System.out.println(localDateTime.format(dateTimeFormatter2));
		//模式字符串創建格式器
		DateTimeFormatter dateTimeFormatter3 = DateTimeFormatter.ofPattern("Gyyyy-MMM-dd HH:mm:ss");
		System.out.println(dateTimeFormatter3.format(localDateTime ));
		System.out.println(localDateTime.format(dateTimeFormatter3));
	}
}

輸出結果

2020-03-17T22:41:20.220
2020-03-17T22:41:20.220
2020年3月17日 星期二 22:41:20
2020年3月17日 星期二 22:41:20
公元2020-三月-17 22:41:20
公元2020-三月-17 22:41:20

parse()示例

public class DateTimeFormatterParseTest{
	public static void main(String[] args) {
		String str = "2020$$$03$$$dd 22時51分10秒"
		DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyy$$$MMM$$$dd HH時mm分ss秒");
		//解析日期
		LocalDateTime localDateTime = LocalDateTime.parse(str, dateTimeFormatter);
		System.out.println(localDateTime);
	}
}

輸出結果:

2020-03-17T22:51:10


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM