Java日期时间 - Java预定义日期时间格式
预定义格式化程序在DateTimeFormatter类中定义为常量。BASIC_ISO_DATE
格式并解析日期,而不使用两个日期组件之间的分隔符。
例如:20140209
20140221-0600
ISO_DATE
格式并使用ISO分隔符解析日期,时间和数据时间。
例如:2014-02-09
ISO_TIME
格式并使用ISO分隔符解析日期,时间和数据时间。
例如:15:21:32.927
15:21:32.123-06:00
ISO_DATE_TIME
格式并使用ISO分隔符解析日期,时间和数据时间。
例如:2014-02-09-06:00
2014-02-09T15:20:07.123-06:00
2014-02-09T15:20:07.123-06:00[America/Chicago]
ISO_INSTANT
格式并解析表示时间的即时或日期时间对象,例如UTC格式的ZonedDateTime。
例如:2014-02-09T21:23:56.870Z
ISO_LOCAL_DATE
格式或解析日期没有偏移。
例如:2014-02-09
ISO_LOCAL_TIME
格式或解析时间没有偏移。
例如:15:30:12.123
ISO_LOCAL_DATE_TIME
格式或解析无偏移的数据时间。
例如:2014-02-09T15:29:11.214
ISO_OFFSET_DATE
格式并使用ISO格式解析具有偏移量的日期。
例如:2014-02-09-06:00
ISO_OFFSET_TIME
格式并使用ISO格式解析具有偏移量的时间。
例如:15:12:29.123-06:00
ISO_OFFSET_DATE_TIME
格式并使用ISO格式解析具有偏移量的数据时间。
例如:2014-02-09T15:33:07.07-06:0
ISO_ZONED_DATE_TIME
格式并使用区域ID解析日期时间(如果可用)。
例如:2014-02-09T15:45:49.123-06:00
2014-02-09T15:45:12.112-06:00[America/Chicago]
ISO_ORDINAL_DATE
格式并解析具有年和年的日期。
例如:2014-009
ISO_WEEK_DATE
格式并解析基于周的日期。 “2014-W02-4”表示2014年第二周的第四天。
例如:2014-W02-4
2014-W02-4-06:00
RFC_1123_DATE_TIME
格式并使用RFC1123规范解析电子邮件的数据时间。
例如:Thu, 9 Jan 2014 15:12:12 -060
例子
我们可以使用DateTimeFormatter类中的以下方法来格式化日期时间值。String format(TemporalAccessor temporal)
void formatTo(TemporalAccessor temporal, Appendable appendable)
以下代码显示如何使用ISO_DATE格式化程序格式化LocalDate,OffsetDateTime和ZonedDateTime。import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class Main{
public static void main(String[] argv){
String ldStr = DateTimeFormatter.ISO_DATE.format(LocalDate.now());
System.out.println(ldStr);
String odtStr = DateTimeFormatter.ISO_DATE.format(OffsetDateTime.now());
System.out.println(odtStr);
String zdtStr = DateTimeFormatter.ISO_DATE.format(ZonedDateTime.now());
System.out.println(zdtStr);
}
}
上面的代码生成以下结果。
例2
我们还可以使用格式()从日期时间类格式化日期时间对象。import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] argv) {
LocalDate ld = LocalDate.now();
String ldStr = ld.format(DateTimeFormatter.ISO_DATE);
System.out.println("Local Date: " + ldStr);
OffsetDateTime odt = OffsetDateTime.now();
String odtStr = odt.format(DateTimeFormatter.ISO_DATE);
System.out.println("Offset Datetime: " + odtStr);
ZonedDateTime zdt = ZonedDateTime.now();
String zdtStr = zdt.format(DateTimeFormatter.ISO_DATE);
System.out.println("Zoned Datetime: " + zdtStr);
}
}
上面的代码生成以下结果。