DateFormat繼承MessageFormat,是實現日期格式化的抽象類。提供兩個方法:format()
用於將數值或日期格化式成字符串;parse()
方法用於將字符串解析成數值或日期。java
parse()
用法舉例:code
String dateStr = "2019-12-10"; System.out.println(DateFormat.getDateInstance().parse(dateStr);
輸出結果:orm
Thur Dec 10 00:00:00 CST 2019
getDateInstance()
:返回一個只有日期,無時間的日期格式器;getImeInstance()
:返回一個只有時間,沒有日期的時間格式器;getDateTimeInstance()
:返回一個既有時間、又有日期的格式器。 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是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)); } }
輸出結果get
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()
示例io
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); } }
輸出結果:form
2020-03-17T22:51:10