public final class DateTimeFormatter extends Object
这个类提供了主要的应用为切入点,打印和解析并提供DateTimeFormatter常见的实现:
ISO_LOCAL_DATEuuuu-MMM-ddlong或medium更复杂的程序是由DateTimeFormatterBuilder。
主要的日期时间类提供了两种方法-一个格式,format(DateTimeFormatter formatter),和一个用于解析、parse(CharSequence text, DateTimeFormatter formatter)。
例如:
String text = date.toString(formatter); LocalDate date = LocalDate.parse(text, formatter);
除了格式,格式化程序可以创建所需的现场,年表,ZoneId,和decimalstyle。
的withLocale方法返回一个新的格式化,覆盖的区域。该区域设置影响格式化和解析的某些方面。例如,在ofLocalizedDate提供一个格式化,使用区域设置特定的日期格式。
的withChronology方法返回一个新的格式化,重写年表。如果重写,日期时间值转换为格式化前的年表。在解析期间,日期时间值转换为返回之前的时间顺序。
的withZone方法返回一个新的格式化,覆盖区。如果重写,日期时间值转换为与请求的zoneid zoneddatetime格式化之前。在分析过程中的应用价值zoneid之前返回。
的withDecimalStyle方法返回一个新的格式化,重写DecimalStyle。的decimalstyle符号用于格式化和解析。
有些应用程序可能需要使用java.text.Format类旧格式。该方法返回一个实现toFormat() java.text.Format。
| Formatter | 描述 | Example |
|---|---|---|
ofLocalizedDate(dateStyle) |
Formatter with date style from the locale | '2011-12-03' |
ofLocalizedTime(timeStyle) |
Formatter with time style from the locale | '10:15:30' |
ofLocalizedDateTime(dateTimeStyle) |
Formatter with a style for date and time from the locale | '3 Jun 2008 11:05:30' |
ofLocalizedDateTime(dateStyle,timeStyle) |
Formatter with date and time styles from the locale | '3 Jun 2008 11:05' |
BASIC_ISO_DATE |
Basic ISO date | '20111203' |
ISO_LOCAL_DATE |
ISO Local Date | '2011-12-03' |
ISO_OFFSET_DATE |
ISO Date with offset | '2011-12-03+01:00' |
ISO_DATE |
ISO Date with or without offset | '2011-12-03+01:00'; '2011-12-03' |
ISO_LOCAL_TIME |
Time without offset | '10:15:30' |
ISO_OFFSET_TIME |
Time with offset | '10:15:30+01:00' |
ISO_TIME |
Time with or without offset | '10:15:30+01:00'; '10:15:30' |
ISO_LOCAL_DATE_TIME |
ISO Local Date and Time | '2011-12-03T10:15:30' |
ISO_OFFSET_DATE_TIME |
Date Time with Offset | 2011-12-03T10:15:30+01:00' |
ISO_ZONED_DATE_TIME |
Zoned Date Time | '2011-12-03T10:15:30+01:00[Europe/Paris]' |
ISO_DATE_TIME |
Date and time with ZoneId | '2011-12-03T10:15:30+01:00[Europe/Paris]' |
ISO_ORDINAL_DATE |
Year and day of year | '2012-337' |
ISO_WEEK_DATE |
Year and Week | 2012-W48-6' |
ISO_INSTANT |
Date and Time of an Instant | '2011-12-03T10:15:30Z' |
RFC_1123_DATE_TIME |
RFC 1123 / RFC 822 | 'Tue, 3 Jun 2008 11:05:30 GMT' |
ofPattern(String)和
ofPattern(String, Locale)方法创建一个格式化程序。例如,
"d MMM uuuu"将格式2011-12-03为3 DEC 2011。格式化程序创建的一个模式可以被多次使用,如有必要,它是永恒的,是线程安全的。
例如:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy MM dd");
String text = date.toString(formatter);
LocalDate date = LocalDate.parse(text, formatter);
所有的字母“A”到“Z”和“A”到“Z”是保留作为模式字母。下面的模式字母被定义:
符号意义表示实例------ ------- ------------ -------G时代文字广告;Anno Domini;一U年2004;04Y一年2004;04D日数189天年数/文本7 M / L月;07;月;七月;J月数D日数10Q / Q的年数/文本3季度第三季度03季度;;;Y周为基础的一年1996;96每周一周为基础的27号月数4周周文二天;星期二;TE / C局部的星期数/文2;02;二;星期二;T月数3周上午下午1时许下午文本AM PM H时钟小时(1-12)12号AM PM K小时(0-11)0号AM PM K时钟小时(1-24)0号一天0小时(24)M分钟数30秒的第二个55号S分数的第二分数978一毫一天1234号N纳米第二987654321纳米日数1234000000v时区ID区ID美国/ los_angeles;Z;- 08:30Z时区名称区域名称太平洋标准时间;PST局域区偏移offset-o GMT + 8;GMT + 08:00;utc-08:00;X区偏移Z为零offset-x Z;08;0830;- 08:30;- 083015 - 08:30:15;X区偏移offset-x + 0000;08;0830;- 08:30;- 083015 - 08:30:15;Z区偏移offset-z + 0000;0800;- 08:00;P垫下垫改性剂1“文本分隔符逃跑“单引号”[可选部分启动可选部分结束#保留供将来使用保留未来使用保留未来使用
模式字母的计数确定格式。
文本:文本风格的基础上确定的图案字母的数目。小于4的信件将使用short form模式。正好4个字母会用full form模式。正好5个字母会用narrow form模式。模式字母“L”,“C”和“Q”指定的文本样式的独立形式。
数:如果字母数,然后利用价值输出的最小位数和无填充。否则,数字的计数被用作输出字段的宽度,有必要的值为零。下面的模式字母对字母的计数有限制。只有一个字母的“C”和“F”可以指定。最多两个字母的“D”,“H”,“H”,“K”,“K”,“M”,和“S”可以指定。最多三个字母的“D”可以指定。
数字/文本:如果图案字母计数为3或更高,使用文本规则。否则使用上面的数字规则。
分数:输出第二场纳米作为一小部分的第二。第二个值的纳米有九个数字,因此图案字母的计数是从1到9。如果它小于9,则第二个值被截断,只有最重要的数字被输出。在严格模式下的解析时,已解析的数字的数量必须与模式字母的计数相匹配。当在宽松模式下解析时,解析的数字的数量必须至少是模式字母的计数,最多为9个数字。
年:字母计数确定最小字段宽度以下的填料。如果字母数是2,然后reduced两位数的形式使用。打印输出,这最右边的两个数字。对于解析,这将解析使用2000的基数,导致一年内的范围在2000至2099之间。如果字母计数小于四(但不是两个),然后是只输出负年每SignStyle.NORMAL。否则,信号输出如果垫宽度超过,每SignStyle.EXCEEDS_PAD。
zoneid:这个输出时区的ID,如“欧洲/巴黎。如果字母的计数是两个,那么时区标识输出。任何其他数信投IllegalArgumentException。
区域名称:这个输出时区ID显示名称如果字母计数是一个,两个或三个,那么短的名字是输出。如果字母的计数是四,则输出的全称是。五个或更多的信件投IllegalArgumentException。
偏移X和X:该格式基于模式字母数的偏移。一个字母输出的一个小时,如“01”,除非分钟是非零的情况下,也输出,如“+ 0130”。两个字母输出的小时和分钟,没有一个结肠癌,如“0130”。三个字母输出的小时和分钟,一个冒号,如“+”01:30。四个字母输出的小时和分钟和可选的第二,没有一个结肠癌,如“013015”。五个字母输出的小时和分钟和可选的第二,一个冒号,如“+”01:30:15。六个或更多的信件投IllegalArgumentException。图案字母x(大写)将输出“Z”当偏移是输出为零,而图案字母x(小写)将输出“00”,“0000”,或“+00:00”。
偏移O:这种格式的局部偏移基于模式的字母数。一个字母输出局部抵消short形式,这是定位偏移文字,如“GMT”,小时没有前导零,可选两位数分钟和第二的如果非零,和冒号,例如“GMT + 8。四个字母的full输出形式,这是定位偏移文字,如“GMT,以2位数的小时和分钟,可选的第二场如果非零,和冒号,例如“GMT + 08:00”。任何其他数信投IllegalArgumentException。
偏移Z:该格式基于模式字母数的偏移。一,两个或三个字母输出的小时和分钟,没有一个结肠癌,如“0130”。当偏移量为零时,输出将是“+ 0000”。四个字母输出局部抵消full形式,相当于四个offset-o.输出将相应的局部偏移文本如果偏移为零。五个字母输出的小时,分钟,可选的第二,如果非零,与结肠。如果偏移量为零,则输出“Z”。六个或更多的信件投IllegalArgumentException。
可选部分:可选部分标记的工作要求和DateTimeFormatterBuilder.optionalEnd() DateTimeFormatterBuilder.optionalStart()一模一样。
垫剂:修改模式,紧跟的是用空格填充。焊盘宽度取决于图案字母的数目。这是叫DateTimeFormatterBuilder.padNext(int)相同。
例如,“PPH输出一小时垫上空间留给宽2。
任何无法识别的字母都是一个错误。任何非字母字符,除了“[”、“]”、“{”、“}”,“#”和单引号将直接输出。尽管如此,建议使用单引号来直接输出您要输出的所有字符,以确保未来的更改不会破坏您的应用程序。
Map场值,一个
ZoneId和
Chronology。第二,解析的数据被解析,通过验证,组合和简化各个领域到更有用的。
五种分析方法是由这个类提供的。四的这些执行的解析和解决阶段。第五种方法,parseUnresolved(CharSequence, ParsePosition),只执行第一阶段,把结果悬而未决。因此,它本质上是一个低级别的操作。
解决阶段由两个参数控制,设置在这个类上。
是的ResolverStyle枚举提供了三种不同的方法,严格的,聪明的和宽容的。智能选项是默认值。它可以设置使用withResolverStyle(ResolverStyle)。
的withResolverFields(TemporalField...)参数允许字段的设置将决定先解决开始过滤。例如,如果格式化程序将一年、月、日、月和日的一年,有两种方法:解决日期(年+月+日月)和(每年的年+日)。解析字段允许一个方法可供选择。如果没有解析字段设置然后两者必须产生相同的日期。
解决单独的字段以形成一个完整的日期和时间是一个复杂的过程,在多个类上分布的行为。它遵循这些步骤:
IsoChronology。ChronoField日期字段的解决。这是通过使用Chronology.resolveDate(Map, ResolverStyle)。现场决议文件位于Chronology实施。ChronoField时间字段的解决。这是记录在ChronoField是相同的所有年表。ChronoField处理。这是通过使用TemporalField.resolve(Map, TemporalAccessor, ResolverStyle)。现场决议文件位于TemporalField实施。ChronoField日期和时间。这允许在步骤四中产生ChronoField值的字段,它们被加工成的日期和时间。LocalTime是如果有一天可以在至少一个小时的形成。这涉及到提供第二分钟,第二和第二部分的默认值。| Modifier and Type | Field and Description |
|---|---|
static DateTimeFormatter |
BASIC_ISO_DATE
ISO日期格式化,格式或解析无偏移的日期,如“20111203”。
|
static DateTimeFormatter |
ISO_DATE
ISO日期格式化,格式或解析与偏移如果可用的日期,如“2011-12-03 '或' 2011-12-03 + 01:00”。
|
static DateTimeFormatter |
ISO_DATE_TIME
ISO日期时间格式化,格式或解析一个如果可用胶印和带日期时间,如“2011-12-03t10:15:30 ',' 2011-12-03t10:15:30 + 01:00”或“2011-12-03t10:15:30 + 01:00 [欧洲/巴黎]”。
|
static DateTimeFormatter |
ISO_INSTANT
ISO即时格式化,格式或解析UTC瞬间,如“2011-12-03t10:15:30z”。
|
static DateTimeFormatter |
ISO_LOCAL_DATE
ISO日期格式化,格式或解析无偏移的日期,如“2011-12-03”。
|
static DateTimeFormatter |
ISO_LOCAL_DATE_TIME
ISO日期时间格式,格式或解析无偏移的日期时间,如“2011-12-03t10:15:30”。
|
static DateTimeFormatter |
ISO_LOCAL_TIME
ISO时间格式化,格式或解析无偏移的时间,如“15”或“10:15:30”。
|
static DateTimeFormatter |
ISO_OFFSET_DATE
ISO日期格式化,格式或解析一个偏置的日期,如“2011-12-03 + 01:00”。
|
static DateTimeFormatter |
ISO_OFFSET_DATE_TIME
ISO日期时间格式,格式或解析一个偏移量,日期时间,如“2011-12-03t10:15:30 + 01:00”。
|
static DateTimeFormatter |
ISO_OFFSET_TIME
ISO时间格式化,格式或解析的时间偏移,如“10:15 + 01:00”或“10:15:30 + 01:00”。
|
static DateTimeFormatter |
ISO_ORDINAL_DATE
ISO日期格式化,格式或解析的顺序日期没有偏移,如“2012-337”。
|
static DateTimeFormatter |
ISO_TIME
ISO时间格式化,格式或分析的时候,以抵消如果可用,如“15”、“10:15:30 '或' 10:15:30 + 01:00”。
|
static DateTimeFormatter |
ISO_WEEK_DATE
ISO日期格式化,格式或解析周以日期没有偏移,如“2012-w48-6”。
|
static DateTimeFormatter |
ISO_ZONED_DATE_TIME
ISO日期时间格式化,格式或将抵消和带日期时间,如“2011-12-03t10:15:30 + 01:00 [欧洲/巴黎]”。
|
static DateTimeFormatter |
RFC_1123_DATE_TIME
的rfc-1123日期时间格式,如“星期二,2008年6月3日”11:05:30 GMT。
|
| Modifier and Type | Method and Description |
|---|---|
String |
format(TemporalAccessor temporal)
使用此格式化程序格式的日期时间对象。
|
void |
formatTo(TemporalAccessor temporal, Appendable appendable)
格式日期时间对象使用此格式化程序的
Appendable。
|
Chronology |
getChronology()
获取在格式化过程中使用的最重要的时间。
|
DecimalStyle |
getDecimalStyle()
得到decimalstyle期间要使用的格式。
|
Locale |
getLocale()
获取在格式化过程中使用的区域设置。
|
Set<TemporalField> |
getResolverFields()
获取旋转变压器领域中使用解析。
|
ResolverStyle |
getResolverStyle()
得到的解析式中使用解析。
|
ZoneId |
getZone()
获取在格式化过程中使用的最重要的区域。
|
static DateTimeFormatter |
ofLocalizedDate(FormatStyle dateStyle)
返回国际标准的日期格式的特定区域日期格式。
|
static DateTimeFormatter |
ofLocalizedDateTime(FormatStyle dateTimeStyle)
返回一个区域设置特定的日期时间格式为ISO年表。
|
static DateTimeFormatter |
ofLocalizedDateTime(FormatStyle dateStyle, FormatStyle timeStyle)
返回国际标准组织的特定日期和时间格式。
|
static DateTimeFormatter |
ofLocalizedTime(FormatStyle timeStyle)
返回国际标准组织的特定区域时间格式。
|
static DateTimeFormatter |
ofPattern(String pattern)
创建一个格式化程序使用指定的模式。
|
static DateTimeFormatter |
ofPattern(String pattern, Locale locale)
创建一个格式化程序使用指定的模式和现场。
|
TemporalAccessor |
parse(CharSequence text)
充分分析文本产生的时空对象。
|
TemporalAccessor |
parse(CharSequence text, ParsePosition position)
分析文本使用此格式化程序,提供对文本位置控制。
|
<T> T |
parse(CharSequence text, TemporalQuery<T> query)
全面解析文本生成一个指定类型的对象。
|
TemporalAccessor |
parseBest(CharSequence text, TemporalQuery<?>... queries)
全面解析文本生成一个指定类型的对象。
|
static TemporalQuery<Period> |
parsedExcessDays()
提供了对被解析过的多余天数的查询。
|
static TemporalQuery<Boolean> |
parsedLeapSecond()
提供了一个访问是否是第二次的查询的查询。
|
TemporalAccessor |
parseUnresolved(CharSequence text, ParsePosition position)
分析文本使用此格式化程序,没有解决的结果,为先进的使用案例。
|
Format |
toFormat()
作为一个
java.text.Format实例返回此格式化程序。
|
Format |
toFormat(TemporalQuery<?> parseQuery)
作为一个
java.text.Format实例解析,将使用指定的查询将返回此格式化程序。
|
String |
toString()
返回一个描述的基本程序。
|
DateTimeFormatter |
withChronology(Chronology chrono)
返回一个格式化程序的一个新的重写这个年表。
|
DateTimeFormatter |
withDecimalStyle(DecimalStyle decimalStyle)
返回一个格式化程序的一个新的decimalstyle这。
|
DateTimeFormatter |
withLocale(Locale locale)
返回一个格式化程序与这一个新的地方。
|
DateTimeFormatter |
withResolverFields(Set<TemporalField> resolverFields)
返回一个格式化程序与这一套新的解析器的领域。
|
DateTimeFormatter |
withResolverFields(TemporalField... resolverFields)
返回一个格式化程序与这一套新的解析器的领域。
|
DateTimeFormatter |
withResolverStyle(ResolverStyle resolverStyle)
返回一个格式化程序的一个新的解析器风格这。
|
DateTimeFormatter |
withZone(ZoneId zone)
返回一个格式化程序的一个新的覆盖区,这。
|
public static final DateTimeFormatter ISO_LOCAL_DATE
这将返回一个可格式化和解析ISO-8601扩展本地日期格式不变的格式化程序。该格式由:
year。在0000至9999年的范围内将预先填充由零,以确保四位数字。年范围以外会有一个前缀的正的或负的符号。month-of-year两位数。这是预先填充的零,以确保两个数字。day-of-month两位数。这是预先填充的零,以确保两个数字。返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用STRICT解析式。
public static final DateTimeFormatter ISO_OFFSET_DATE
这将返回一个可格式化和解析ISO-8601扩展偏移日期格式不变的格式化程序。该格式由:
ISO_LOCAL_DATEoffset ID。如果偏移有秒然后他们会处理即使不是ISO-8601标准的一部分。解析是不区分大小写的。返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用STRICT解析式。
public static final DateTimeFormatter ISO_DATE
这将返回一个可格式化和解析ISO-8601延长日期格式不变的格式化程序。该格式由:
ISO_LOCAL_DATEoffset ID。如果偏移有秒然后他们会处理即使不是ISO-8601标准的一部分。解析是不区分大小写的。这个格式有一个可选的元素,它可能需要使用parseBest(java.lang.CharSequence, java.time.temporal.TemporalQuery<?>...)解析。
返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用STRICT解析式。
public static final DateTimeFormatter ISO_LOCAL_TIME
这将返回一个可格式化和解析ISO-8601格式扩展当地时间不变的格式化程序。该格式由:
hour-of-day两位数。这是预先填充的零,以确保两个数字。minute-of-hour两位数。这是预先填充的零,以确保两个数字。second-of-minute两位数。这是预先填充的零,以确保两个数字。nano-of-second。正如许多数字将输出所需。返回格式化没有重写年表或区。它使用STRICT解析式。
public static final DateTimeFormatter ISO_OFFSET_TIME
这将返回一个可格式化和解析ISO-8601格式扩展偏移时间不变的格式化程序。该格式由:
ISO_LOCAL_TIMEoffset ID。如果偏移有秒然后他们会处理即使不是ISO-8601标准的一部分。解析是不区分大小写的。返回格式化没有重写年表或区。它使用STRICT解析式。
public static final DateTimeFormatter ISO_TIME
这将返回一个可格式化和解析ISO-8601格式扩展偏移时间不变的格式化程序。该格式由:
ISO_LOCAL_TIMEoffset ID。如果偏移有秒然后他们会处理即使不是ISO-8601标准的一部分。解析是不区分大小写的。这个格式有一个可选的元素,它可能需要使用parseBest(java.lang.CharSequence, java.time.temporal.TemporalQuery<?>...)解析。
返回格式化没有重写年表或区。它使用STRICT解析式。
public static final DateTimeFormatter ISO_LOCAL_DATE_TIME
这将返回一个可格式化和解析ISO-8601扩展偏移日期时间格式不变的格式化程序。该格式由:
ISO_LOCAL_DATEISO_LOCAL_TIME返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用STRICT解析式。
public static final DateTimeFormatter ISO_OFFSET_DATE_TIME
这将返回一个可格式化和解析ISO-8601扩展偏移日期时间格式不变的格式化程序。该格式由:
ISO_LOCAL_DATE_TIMEoffset ID。如果偏移有秒然后他们会处理即使不是ISO-8601标准的一部分。解析是不区分大小写的。返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用STRICT解析式。
public static final DateTimeFormatter ISO_ZONED_DATE_TIME
这将返回一个可格式化和解析的格式,扩展扩展抵消ISO-8601日期时间格式添加时区一成不变的格式化程序。方括号中的部分不是ISO-8601标准的一部分。该格式由:
ISO_OFFSET_DATE_TIMEZoneOffset然后格式完成。zone ID。这是不是对ISO-8601标准部分。解析是区分大小写的。返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用STRICT解析式。
public static final DateTimeFormatter ISO_DATE_TIME
这将返回一个可格式化和解析ISO-8601局部扩大或偏移日期时间格式不变的格式化程序,以及扩展的非ISO形式指定时区。该格式由:
ISO_LOCAL_DATE_TIMEoffset ID。如果偏移有秒然后他们会处理即使不是ISO-8601标准的一部分。ZoneOffset然后格式完成。zone ID。这是不是对ISO-8601标准部分。解析是区分大小写的。这个格式有一个可选的元素,它可能需要使用parseBest(java.lang.CharSequence, java.time.temporal.TemporalQuery<?>...)解析。
返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用STRICT解析式。
public static final DateTimeFormatter ISO_ORDINAL_DATE
这将返回一个可格式化和解析ISO-8601扩展序号日期格式不变的格式化程序。该格式由:
year。在0000至9999年的范围内将预先填充由零,以确保四位数字。年范围以外会有一个前缀的正的或负的符号。day-of-year三位数。这是预先填充的零,以确保三位数字。offset ID。如果偏移有秒然后他们会处理即使不是ISO-8601标准的一部分。解析是不区分大小写的。这个格式有一个可选的元素,它可能需要使用parseBest(java.lang.CharSequence, java.time.temporal.TemporalQuery<?>...)解析。
返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用STRICT解析式。
public static final DateTimeFormatter ISO_WEEK_DATE
这将返回一个可格式化和解析ISO-8601扩展基础的日期格式周不变的格式化程序。该格式由:
week-based-year。在0000至9999年的范围内将预先填充由零,以确保四位数字。年范围以外会有一个前缀的正的或负的符号。week-of-week-based-year两位数。这是预先填充的零,以确保三位数字。day-of-week一位数。从星期一(1)到星期日(7)的价值。offset ID。如果偏移有秒然后他们会处理即使不是ISO-8601标准的一部分。解析是不区分大小写的。这个格式有一个可选的元素,它可能需要使用parseBest(java.lang.CharSequence, java.time.temporal.TemporalQuery<?>...)解析。
返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用STRICT解析式。
public static final DateTimeFormatter ISO_INSTANT
这将返回一个可格式化和解析ISO-8601格式不变的格式化的瞬间。格式化时,第二分钟总是输出。第二个输出的纳米级为零,三,六或九位数字为必要。当解析时,需要至少需要秒字段。从零到九的分数秒被解析。不使用本地化的十进制样式。
这是一个特殊的格式化程序旨在让人类可读形式的Instant,Instant类设计只代表一个时间点和内部存储一个值来从一个固定的时期1970-01-01z。这样,一个Instant不能被格式化为日期或时间不提供某种形式的时区。这种格式允许Instant被格式化,通过提供使用ZoneOffset.UTC合适的转换。
该格式由:
ISO_OFFSET_DATE_TIME在瞬间转换从ChronoField.INSTANT_SECONDS和ChronoField.NANO_OF_SECOND使用UTC偏移。解析是不区分大小写的。返回格式化没有重写年表或区。它使用STRICT解析式。
public static final DateTimeFormatter BASIC_ISO_DATE
这将返回一个可格式化和解析ISO-8601基本局部日期格式不变的格式化程序。该格式由:
year。只有在0000到9999的范围内是支持的。month-of-year两位数。这是预填充零保证两位数。day-of-month两位数。这是预填充零保证两位数。offset ID。如果偏移有秒然后他们会处理即使不是ISO-8601标准的一部分。解析是不区分大小写的。这个格式有一个可选的元素,它可能需要使用parseBest(java.lang.CharSequence, java.time.temporal.TemporalQuery<?>...)解析。
返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用STRICT解析式。
public static final DateTimeFormatter RFC_1123_DATE_TIME
这将返回一个可格式化和分析大部分的rfc-1123格式不变的格式化程序。rfc-1123更新RFC-822改变年两位数四。这个实现需要一四个数字的一年。此实现也不处理北美或军事区的名称,只有“标准时间”和偏移量。
该格式由:
day-of-week。day-of-month。month-of-year。year。只有在0000到9999的范围内是支持的。hour-of-day两位数。这是预先填充的零,以确保两个数字。minute-of-hour两位数。这是预先填充的零,以确保两个数字。second-of-minute两位数。这是预先填充的零,以确保两个数字。offset ID。零使用的偏移量为“标准时间”。北美洲区域名称和军事区名称不处理。解析是不区分大小写的。
返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用SMART解析式。
public static DateTimeFormatter ofPattern(String pattern)
此方法将创建一个格式化程序基于一个简单的pattern of letters and symbols在类文档描述。例如,d MMM uuuu将格式为“2011”2011-12-03月3。
格式化程序将使用default FORMAT locale。这可以使用withLocale(Locale)在返回格式化或者使用这种方法的ofPattern(String, Locale)变改。
返回格式化没有重写年表或区。它采用SMART解析式。
pattern的模式使用,不为空
IllegalArgumentException -如果模式是无效的
DateTimeFormatterBuilder.appendPattern(String)
public static DateTimeFormatter ofPattern(String pattern, Locale locale)
此方法将创建一个格式化程序基于一个简单的pattern of letters and symbols在类文档描述。例如,d MMM uuuu将格式为“2011”2011-12-03月3。
格式化程序将使用指定的区域设置。这可以使用withLocale(Locale)在返回格式化程序的改变
返回格式化没有重写年表或区。它采用SMART解析式。
pattern的模式使用,不为空
locale -现场使用,不为空
IllegalArgumentException -如果模式是无效的
DateTimeFormatterBuilder.appendPattern(String)
public static DateTimeFormatter ofLocalizedDate(FormatStyle dateStyle)
这将返回一个格式化,格式化或分析日期。使用不同的区域设置的精确格式模式。
现场是由格式化程序确定。格式化程序直接返回该方法将使用default FORMAT locale。现场可以使用withLocale(Locale)在这种方法的结果控制。
注意局部模式是懒洋洋地望着。这DateTimeFormatter拥有风格要求和现场,查找所需的需求模式。
返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用SMART解析式。
dateStyle的格式化方式获得,不为空
public static DateTimeFormatter ofLocalizedTime(FormatStyle timeStyle)
这将返回一个格式化,格式化或分析一次。使用不同的区域设置的精确格式模式。
现场是由格式化程序确定。格式化程序直接返回该方法将使用default FORMAT locale。现场可以使用withLocale(Locale)在这种方法的结果控制。
注意局部模式是懒洋洋地望着。这DateTimeFormatter拥有风格要求和现场,查找所需的需求模式。
返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用SMART解析式。
timeStyle的格式化方式获得,不为空
public static DateTimeFormatter ofLocalizedDateTime(FormatStyle dateTimeStyle)
这将返回一个格式化,格式化或分析日期时间。使用不同的区域设置的精确格式模式。
现场是由格式化程序确定。格式化程序直接返回该方法将使用default FORMAT locale。现场可以使用withLocale(Locale)在这种方法的结果控制。
注意局部模式是懒洋洋地望着。这DateTimeFormatter拥有风格要求和现场,查找所需的需求模式。
返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用SMART解析式。
dateTimeStyle的格式化方式获得,不为空
public static DateTimeFormatter ofLocalizedDateTime(FormatStyle dateStyle, FormatStyle timeStyle)
这将返回一个格式化,格式化或分析日期时间。使用不同的区域设置的精确格式模式。
现场是由格式化程序确定。格式化程序直接返回该方法将使用default FORMAT locale。现场可以使用withLocale(Locale)在这种方法的结果控制。
注意局部模式是懒洋洋地望着。这DateTimeFormatter拥有风格要求和现场,查找所需的需求模式。
返回格式化程序有一个年表的ISO设置以确保在其他日历系统日期正确转换。它没有覆盖区,采用SMART解析式。
dateStyle -日期格式化方式获得,不为空
timeStyle -时间格式化方式获得,不为空
public static final TemporalQuery<Period> parsedExcessDays()
这是返回一个单query提供附加信息的解析。该查询总是返回一个非空期间,而返回的是一零个周期,而不是空的。
有两种情况下,此查询可以返回一个非零周期。
ResolverStyle是LENIENT和时间解析没有日期,然后解析的结果完全由LocalTime和过量Period在天。ResolverStyle是SMART和时间解析没有约会的时间是24:00:00,然后解析的结果由一个完整的一天LocalTime 00:00:00和过量的Period。在这两种情况下,如果一个完整的ChronoLocalDateTime或Instant解析,然后剩余的日子添加到日期部分。因此,此查询将返回一零个周期。
的SMART行为处理日24:00结束共同价值”。在LENIENT模式处理也产生相同的结果:
文本来解析分析的对象多余的天数“2012-12-03t00:00”localdatetime,(2012,12,3,0,0)零“2012-12-03t24:00”localdatetime,(2012,12,4,0,0)零“当地时间00:00”,(0,0)零“日”的形式,(0,0)(1)天内。查询可以使用如下:
temporalaccessor解析=格式化解析(STR);当地时间=解析。查询(本地时间::从);期extradays =解析。查询(datetimeformatter。parsedexcessdays());
public static final TemporalQuery<Boolean> parsedLeapSecond()
这是返回一个单query提供附加信息的解析。该查询总是返回一个非空的布尔值,如果分析看到一个跳跃的第二个错误,如果不是。
即时分析处理的特殊“闰秒”时间“23:59:60”。闰秒发生在“23:59:60”在UTC时区,但在不同时区的其他地方的时候。为了避免这种潜在歧义,飞跃秒的处理是有限的,DateTimeFormatterBuilder.appendInstant(),方法总是将即时与UTC时区偏移。
如果时间23:59:60”接收,然后一个简单的转换应用,59分钟60秒更换。此查询可用于解析结果,以确定是否作出第二次调整。该查询将返回一个多余的,如果它确实调整删除的第二次,和零,如果不是。注意,应用一个闰秒平滑机制,如utc-sls,是应用程序的责任,如下:
temporalaccessor解析=格式化解析(STR);即时即时=解析的查询(即时::从);如果(解析。查询(datetimeformatter。parsedleapsecond())){/验证跳跃的第二个是正确的,并应用正确的平滑}
public Locale getLocale()
这是用来查找需要特定定位的格式化程序的任何部分,如文本或局部模式。
public DateTimeFormatter withLocale(Locale locale)
这是用来查找需要特定定位的格式化程序的任何部分,如文本或局部模式。
此实例是不可变的,不受此方法调用的影响。
locale -新的现场,不为空
public DecimalStyle getDecimalStyle()
public DateTimeFormatter withDecimalStyle(DecimalStyle decimalStyle)
此实例是不可变的,不受此方法调用的影响。
decimalStyle -新的decimalstyle,不空
public Chronology getChronology()
这返回重写的时间,用于转换日期。默认情况下,格式化没有重写年表,返回null。看到了更多的细节withChronology(Chronology)压倒一切。
public DateTimeFormatter withChronology(Chronology chrono)
这会返回一个类似的状态,但这个格式化格式化程序重写年表集。默认情况下,格式化没有重写年表,返回null。
如果添加了重写,那么任何格式化或解析的日期都会受到影响。
当格式化时,如果时间对象包含一个日期,那么它将被转换为覆盖时间的日期。是否包含一个日期时间的查询EPOCH_DAY场确定。任何时间或区域将保留不变,除非重写。
如果时空对象不包含日期,但不包含一个或多个ChronoField日期字段,然后DateTimeException抛出。在所有其他情况下,覆盖的时间顺序添加到时间,取代任何以前的时间顺序,但不改变日期/时间。
当解析时,有两个不同的情况来考虑。如果序列已经直接从文本分析,也许是因为使用了DateTimeFormatterBuilder.appendChronologyId(),然后重写年表没有影响。如果没有带已经被解析,然后重写年表将用于解释ChronoField值为日期根据日期解决年代学规则。
此实例是不可变的,不受此方法调用的影响。
chrono -新的年表,null,如果没有重写
public ZoneId getZone()
这将覆盖区,用于转换的瞬间。默认情况下,格式化程序没有覆盖区,返回null。看到了更多的细节withZone(ZoneId)压倒一切。
public DateTimeFormatter withZone(ZoneId zone)
这会返回一个类似的状态,但这个格式化格式化程序的覆盖区。默认情况下,格式化程序没有覆盖区,返回null。
如果添加了重写,那么任何格式化或解析的即时都会受到影响。
当格式化时,如果时间对象包含一个瞬间,那么它将被转换为一个分区的时间,使用覆盖区。无论时间是一个即时通过查询INSTANT_SECONDS场确定。如果输入一个年表,然后将被保留,除非重写。如果输入没有年表,如Instant,然后将使用ISO年表。
如果时间对象不包含一个即时对象,但确实包含一个偏移量,然后一个额外的检查。如果标准化的覆盖区是一个偏移量,不同的时间偏移,然后DateTimeException抛出。在所有其他情况下,覆盖区域被添加到时间,取代任何以前的区域,但不改变日期/时间。
当解析时,有两个不同的情况来考虑。如果一个区已直接从文本分析,也许是因为用的是DateTimeFormatterBuilder.appendZoneId(),那么这个覆盖区没有影响。如果没有带已经被解析,那么这个覆盖区将包含在结果的解析,它可以用来建立时间和日期时间。
此实例是不可变的,不受此方法调用的影响。
zone -新的覆盖区,空如果不重写
public ResolverStyle getResolverStyle()
这将返回解析器的风格,用在第二阶段解析当场分解为日期和时间。默认情况下,一个格式化的SMART解析式。看到withResolverStyle(ResolverStyle)详情。
public DateTimeFormatter withResolverStyle(ResolverStyle resolverStyle)
这会返回一个类似的状态,但这种格式化格式化程序的解析式集。默认情况下,一个格式化的SMART解析式。
改变旋转式只有一个作用解析。解析一个文本字符串发生在两个阶段。1阶段是一个基本的文本解析,根据添加到生成器的字段。相2将解析的字段值对解析成日期和/或时间对象。解析式是用来控制如何解决,发生2期。看到ResolverStyle更多信息可供选择。
此实例是不可变的,不受此方法调用的影响。
resolverStyle -新的解析式,不为空
public Set<TemporalField> getResolverFields()
这将返回变压器领域,用于在第二阶段解析当场分解为日期和时间。默认情况下,格式化程序没有解决的领域,从而返回null。更多细节见withResolverFields(Set)。
public DateTimeFormatter withResolverFields(TemporalField... resolverFields)
这会返回一个类似的状态,但这种格式化格式化程序解析器的字段集。默认情况下,格式化没有解析的领域。
改变溶剂领域只有一个作用解析。解析一个文本字符串发生在两个阶段。1阶段是一个基本的文本解析,根据添加到生成器的字段。相2将解析的字段值对解析成日期和/或时间对象。解析字段用于过滤阶段1和2之间的场值对。
这可以用于在两个或多个日期或时间可能解决的方法之间进行选择。例如,如果格式化程序包含年、月、日,月和日的一年,然后有两种方法来解决一个日期。随着争论YEAR和DAY_OF_YEAR调用此方法将确保日期是用年日年解决,有效的意义,月和日的月是在解决阶段忽视。
以类似的方式,此方法可以被用来忽略其他将被交叉检查的次要字段。例如,如果格式化程序包含年、月、日,月,星期,然后只有一个办法可以解决一个日期,但解析值一周将对解决日期交叉检查。随着争论YEAR调用此方法,MONTH_OF_YEAR和DAY_OF_MONTH将确保日期是有效解决,但没有任何交叉检查星期几。
在实施条件中,该方法的行为如下。解析阶段的结果可以被认为是一个字段到值的映射。该方法的行为是使该映射在1和2之间进行筛选,并移除那些指定的所有字段以外的其他参数的方法。
此实例是不可变的,不受此方法调用的影响。
resolverFields -旋转变压器领域的新领域,如果不空
public DateTimeFormatter withResolverFields(Set<TemporalField> resolverFields)
这会返回一个类似的状态,但这种格式化格式化程序解析器的字段集。默认情况下,格式化没有解析的领域。
改变溶剂领域只有一个作用解析。解析一个文本字符串发生在两个阶段。1阶段是一个基本的文本解析,根据添加到生成器的字段。相2将解析的字段值对解析成日期和/或时间对象。解析字段用于过滤阶段1和2之间的场值对。
这可以用于在两个或多个日期或时间可能解决的方法之间进行选择。例如,如果格式化程序包含年、月、日,月和日的一年,然后有两种方法来解决一个日期。随着争论YEAR和DAY_OF_YEAR调用此方法将确保日期是用年日年解决,有效的意义,月和日的月是在解决阶段忽视。
以类似的方式,此方法可以被用来忽略其他将被交叉检查的次要字段。例如,如果格式化程序包含年、月、日,月,星期,然后只有一个办法可以解决一个日期,但解析值一周将对解决日期交叉检查。随着争论YEAR调用此方法,MONTH_OF_YEAR和DAY_OF_MONTH将确保日期是有效解决,但没有任何交叉检查星期几。
在实施条件中,该方法的行为如下。解析阶段的结果可以被认为是一个字段到值的映射。该方法的行为是使该映射在1和2之间进行筛选,并移除那些指定的所有字段以外的其他参数的方法。
此实例是不可变的,不受此方法调用的影响。
resolverFields -旋转变压器领域的新领域,如果不空
public String format(TemporalAccessor temporal)
这种格式的日期,时间,使用格式化程序规则的字符串。
temporal -格式的时空对象,不为空
DateTimeException如果格式化过程中发生错误
public void formatTo(TemporalAccessor temporal, Appendable appendable)
Appendable。
将格式化的日期时间输出到指定的目的地。Appendable是一个通用的接口,是由所有关键字符输出类包括StringBuffer,StringBuilder实施,PrintStream和Writer。
虽然Appendable方法抛出一个IOException,这种方法不。相反,任何IOException包在运行时异常。
temporal -格式的时空对象,不为空
appendable -格式可追加,不空
DateTimeException如果格式化过程中发生错误
public TemporalAccessor parse(CharSequence text)
这对整个文本产生的时空对象。它使用parse(CharSequence, TemporalQuery)有用通常更多。这种方法的结果是TemporalAccessor已解决,运用基本的验证检查,以确保有效的日期时间。
如果解析完成而不读取文本的整个长度,或者在解析或合并过程中发生了一个问题,则抛出一个异常。
text -解析文本,不空
DateTimeParseException如果无法解析请求的结果
public TemporalAccessor parse(CharSequence text, ParsePosition position)
这一分析文本不需要解析从字符串的开始或结束。这种方法的结果是TemporalAccessor已解决,运用基本的验证检查,以确保有效的日期时间。
本文将从指定的开始ParsePosition解析。文本的整个长度不需要解析的ParsePosition将更新与指标在分析结束。
此方法的操作是使用类似的方法对java.text.Format ParsePosition略有不同。这类将返回错误使用误差指标的ParsePosition。相比之下,这种方法会出现错误时抛出一个DateTimeParseException,含误差指标的异常。这种行为的改变是必要的,因为在这个数据处理中分析和解决日期/时间的复杂性增加了。
如果格式化程序将同场不止一次不同的值,结果将是一个错误。
text -解析文本,不空
position -位置解析,解析和长度的任何错误的索引更新,不为空
DateTimeParseException如果无法解析请求的结果
IndexOutOfBoundsException -如果位置是无效的
public <T> T parse(CharSequence text, TemporalQuery<T> query)
大多数应用程序应该使用此方法进行解析。它可以分析整个文本生产所需的时间。查询是一个典型的方法参考一from(TemporalAccessor)方法。例如:
localdatetime DT =解析器解析(STR,localdatetime::从);如果解析完成没有阅读文本的整个长度,或发生问题,在解析过程中或合并,然后抛出一个异常。
T -解析日期时间类型
text -解析文本,不空
query -查询定义的类型解析,不空
DateTimeParseException如果无法解析请求的结果
public TemporalAccessor parseBest(CharSequence text, TemporalQuery<?>... queries)
这种分析方法是方便使用时,解析器可以处理可选的元素。例如,一个“uuuu MM DD HH模式。毫米[ VV ]可以完全解析到一个ZonedDateTime,或部分解析为一个LocalDateTime。查询必须指定顺序,从最好的匹配的全解析选项,并以最坏的匹配最小的解析选项结束。查询是一个典型的方法参考一from(TemporalAccessor)方法。
结果与第一型,成功地解析相关。通常,应用程序将使用instanceof检查结果。例如:
temporalaccessor DT =解析器。parsebest(STR,zoneddatetime::::,localdatetime从);如果(DT是zoneddatetime){…其他{ }…}如果解析完成没有阅读文本的整个长度,或发生问题,在解析过程中或合并,然后抛出一个异常。
text -解析文本,不空
queries定义类型试图解析的查询,必须实现
TemporalAccessor,不空
IllegalArgumentException -如果指定了2种之多
DateTimeParseException如果无法解析请求的结果
public TemporalAccessor parseUnresolved(CharSequence text, ParsePosition position)
解析实现为一个两阶段的操作。首先,文字使用的格式化程序定义的布局分析,生产Map场值,一个ZoneId和Chronology。第二,解析的数据被解析,通过验证,组合和简化各个领域到更有用的。此方法执行解析阶段,但不是解决阶段。
这种方法的结果是TemporalAccessor所代表的数据作为输入的视。价值观没有得到验证,从而解析日期字符串“2012-00-65”会导致时间与三场年“2012”“0”,月日和月的“65”。
本文将从指定的开始ParsePosition解析。文本的整个长度不需要解析的ParsePosition将更新与指标在分析结束。
错误返回使用的ParsePosition误差指标领域而不是DateTimeParseException。返回的错误索引将被设置为指示该错误的索引。在使用上下文之前,调用方必须检查错误。
如果格式化程序将同场不止一次不同的值,结果将是一个错误。
这种方法的目的是用于在分析过程中需要访问内部状态的高级用例。典型的应用程序应该使用parse(CharSequence, TemporalQuery)或解析法对目标类型。
text -解析文本,不空
position -位置解析,解析和长度的任何错误的索引更新,不为空
DateTimeException -如果在解析过程中出现了一些问题
IndexOutOfBoundsException -如果位置是无效的
public Format toFormat()
java.text.Format实例返回此格式化程序。
返回的Format实例将格式的任何TemporalAccessor解析到一个解决TemporalAccessor。
例外将遵循Format的定义,在格式和ParseException或空在解析过程中看到这些方法的细节IllegalArgumentException。格式不支持属性返回的字符串格式。
public Format toFormat(TemporalQuery<?> parseQuery)
java.text.Format实例解析,将使用指定的查询将返回此格式化程序。
返回的Format实例将格式的任何TemporalAccessor解析到指定的类型。类型必须是由parse(java.lang.CharSequence)。
例外将遵循Format的定义,在格式和ParseException或空在解析过程中看到这些方法的细节IllegalArgumentException。格式不支持属性返回的字符串格式。
parseQuery -查询定义的类型解析,不空
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.