public class SimpleDateFormat extends DateFormat
SimpleDateFormat
是格式和语言环境敏感的方式解析一个类的具体日期。可以格式化(日期→文本),分析(文本→日期),和归一化。
SimpleDateFormat
允许你开始选择任何用户定义的模式为日期时间格式。然而,我们鼓励你与getTimeInstance
,getDateInstance
创建日期时间格式,或在DateFormat
getDateTimeInstance
。这些类中的方法可以返回一个日期/时间格式化程序初始化一个默认的格式模式。你可以使用applyPattern
方法需要修改格式模式。在使用这些方法的更多信息,见DateFormat
。
日期和时间格式指定日期和时间格式字符串。日期和时间模式的字符串内,无信'A'
到'Z'
从'a'
到'z'
解释为模式字母代表组成的一个日期或时间字符串。引用文本可以使用单引号('
)避免解释。"''"
代表一个单引号。所有其他字符不被解释;它们只是在格式化过程中被复制到输出字符串或在分析过程中对输入字符串匹配。
以下定义的图案字母(所有其他字符'A'
到'Z'
从'a'
到'z'
保留):
模式信件通常都是重复的,他们的数量决定了精确的描述:
Letter Date or Time Component Presentation Examples G
Era designator Text AD
y
Year Year 1996
;96
Y
Week year Year 2009
;09
M
Month in year (context sensitive) Month July
;Jul
;07
L
Month in year (standalone form) Month July
;Jul
;07
w
Week in year Number 27
W
Week in month Number 2
D
Day in year Number 189
d
Day in month Number 10
F
Day of week in month Number 2
E
Day name in week Text Tuesday
;Tue
u
Day number of week (1 = Monday, ..., 7 = Sunday) Number 1
a
Am/pm marker Text PM
H
Hour in day (0-23) Number 0
k
Hour in day (1-24) Number 24
K
Hour in am/pm (0-11) Number 0
h
Hour in am/pm (1-12) Number 12
m
Minute in hour Number 30
s
Second in minute Number 55
S
Millisecond Number 978
z
Time zone General time zone Pacific Standard Time
;PST
;GMT-08:00
Z
Time zone RFC 822 time zone -0800
X
Time zone ISO 8601 time zone -08
;-0800
;-08:00
Calendar
是公历,以下规则是applied.SimpleDateFormat
必须解释缩写年相对于一些世纪。它通过调整日期在80年前和20年的时间创造了SimpleDateFormat
实例后。例如,使用“年/月/日”,创建于1997年1月1日SimpleDateFormat
实例模式,字符串“01 / 11 / 12”会被解释为2012年1月11日在字符串“05 / 04 / 64”会被解释为1964年5月4日。在分析过程中,只由两个数字字符串,定义由Character.isDigit(char)
,将解析为默认的世纪。任何其他数字字符串,如一一位数字的字符串,一三个或更多的数字字符串,或一二位数字字符串,不是所有的数字(例如,“- 1”),是从字面上解释。因此,“01 / 02 / 3”或“01 / 02 / 003”进行了分析,使用相同的模式,如1月2日,公元3年。同样,“01 / 02 / - 3”被解析为1月2日,公元前4年。'Y'
是指定和calendar不支持任何 week years,历年('y'
)代替。一年的支持可以通过调用getCalendar()
.isWeekDateSupported()
.DateFormatSymbols
已显式设置构造函数或方法SimpleDateFormat(String, DateFormatSymbols)
setDateFormatSymbols(DateFormatSymbols)
,所使用的DateFormatSymbols
给定月份名称。GMTOffsetTimeZone:小时必须在0和23之间,和分钟必须在00和59之间。格式是现场独立的数字必须从Unicode标准的基本拉丁语块。GMT
标志小时:
分钟标志:一+ -
小时:数字数字数字分钟:数字数字数字:其中一个0 1 2 3 4 5 6 7 8 9
解析,RFC 822 time zones也accepted.
rfc822timezone:标志twodigithours分钟TwoDigitHours:数位twodigithours必须在00和23之间。其他的定义为general time zones。
解析,general time zones也接受。
iso8601timezone:oneletteriso8601timezonetwoletteriso8601timezonethreeletteriso8601timezoneoneletteriso8601timezone:标志twodigithours其他定义为general time zones或RFC 822 time zones。Z
twoletteriso8601timezone:标志twodigithours分钟Z
threeletteriso8601timezone:标志twodigithours:
分钟Z
格式化,如果偏移值从格林威治标准时间0,"Z"
产生。如果模式字母的个数为1,则忽略了一个小时的任何部分。例如,如果模式是"X"
和时区是"GMT+05:30"
,"+05"
产生。
"Z"
解析,解析为UTC时区指示器。General time zones不被接受。
如果模式字母数是4或更多,IllegalArgumentException
投入建设SimpleDateFormat
或applying a pattern。
SimpleDateFormat
也支持本地化的日期和时间模式的字符串。在这些字符串中,上面描述的模式字母可以被替换,与其他的,语言设置的,模式字母。
SimpleDateFormat
不处理文本以外的图案字母的定位;这是对类的客户。
Date and Time Pattern Result "yyyy.MM.dd G 'at' HH:mm:ss z"
2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy"
Wed, Jul 4, '01
"h:mm a"
12:08 PM
"hh 'o''clock' a, zzzz"
12 o'clock PM, Pacific Daylight Time
"K:mm a, z"
0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"
02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"
Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"
010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
2001-07-04T12:08:56.235-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
2001-07-04T12:08:56.235-07:00
"YYYY-'W'ww-u"
2001-W27-3
日期格式不同步。建议为每个线程创建单独的格式实例。如果多个线程同时访问一个格式,则必须在外部同步。
DateFormat.Field
AM_PM_FIELD, calendar, DATE_FIELD, DAY_OF_WEEK_FIELD, DAY_OF_WEEK_IN_MONTH_FIELD, DAY_OF_YEAR_FIELD, DEFAULT, ERA_FIELD, FULL, HOUR_OF_DAY0_FIELD, HOUR_OF_DAY1_FIELD, HOUR0_FIELD, HOUR1_FIELD, LONG, MEDIUM, MILLISECOND_FIELD, MINUTE_FIELD, MONTH_FIELD, numberFormat, SECOND_FIELD, SHORT, TIMEZONE_FIELD, WEEK_OF_MONTH_FIELD, WEEK_OF_YEAR_FIELD, YEAR_FIELD
Constructor and Description |
---|
SimpleDateFormat()
使用默认的
FORMAT 现场默认模式和日期格式的符号构建了一个
SimpleDateFormat 。
|
SimpleDateFormat(String pattern)
使用给定的模式和默认的日期格式符号默认
FORMAT 现场构建了一个
SimpleDateFormat 。
|
SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)
使用给定的模式和日期格式的符号构建了一个
SimpleDateFormat 。
|
SimpleDateFormat(String pattern, Locale locale)
使用给定的模式和默认的日期格式符号为给定的区域构造
SimpleDateFormat 。
|
Modifier and Type | Method and Description |
---|---|
void |
applyLocalizedPattern(String pattern)
将给定的本地化模式字符串应用到此日期格式。
|
void |
applyPattern(String pattern)
将给定的模式字符串应用到此日期格式。
|
Object |
clone()
复制这
SimpleDateFormat 。
|
boolean |
equals(Object obj)
比较了这
SimpleDateFormat 平等对象。
|
StringBuffer |
format(Date date, StringBuffer toAppendTo, FieldPosition pos)
给定的
Date 进入日期/时间线和附加的结果给出的
StringBuffer 格式。
|
AttributedCharacterIterator |
formatToCharacterIterator(Object obj)
格式对象产生一个
AttributedCharacterIterator 。
|
Date |
get2DigitYearStart()
返回100年两位数的年份开始日期被解释为在。
|
DateFormatSymbols |
getDateFormatSymbols()
获取此日期格式的日期和时间格式符号的副本。
|
int |
hashCode()
返回该对象的哈希码值
SimpleDateFormat 。
|
Date |
parse(String text, ParsePosition pos)
解析文本字符串以产生
Date 。
|
void |
set2DigitYearStart(Date startDate)
集100年两位数的年份将被解释作为开始日期用户指定。
|
void |
setDateFormatSymbols(DateFormatSymbols newFormatSymbols)
设置此日期格式的日期和时间格式符号。
|
String |
toLocalizedPattern()
返回描述此日期格式的局部模式字符串。
|
String |
toPattern()
返回描述此日期格式的模式字符串。
|
format, format, getAvailableLocales, getCalendar, getDateInstance, getDateInstance, getDateInstance, getDateTimeInstance, getDateTimeInstance, getDateTimeInstance, getInstance, getNumberFormat, getTimeInstance, getTimeInstance, getTimeInstance, getTimeZone, isLenient, parse, parseObject, setCalendar, setLenient, setNumberFormat, setTimeZone
format, parseObject
public SimpleDateFormat()
public SimpleDateFormat(String pattern)
FORMAT
现场构建了一个
SimpleDateFormat
。
注:这个构造函数可能不支持所有的地方。全覆盖,在
DateFormat
类使用工厂方法。
这相当于调用SimpleDateFormat(pattern, Locale.getDefault(Locale.Category.FORMAT))
。
pattern
-模式描述的日期和时间格式
NullPointerException
-如果给定的模式是无效的
IllegalArgumentException
如果给定的模式是无效的
Locale.getDefault(java.util.Locale.Category)
,
Locale.Category.FORMAT
public SimpleDateFormat(String pattern, Locale locale)
SimpleDateFormat
。
注:这个构造函数可能不支持所有的地方。全覆盖,在
DateFormat
类使用工厂方法。
pattern
-模式描述的日期和时间格式
locale
的日期格式符号应使用现场
NullPointerException
如果给定的模式或区域是空的
IllegalArgumentException
如果给定的模式是无效的
public SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)
SimpleDateFormat
。
pattern
-模式描述的日期和时间格式
formatSymbols
-日期格式符号用来格式化
NullPointerException
如果给定的模式或formatsymbols是空的
IllegalArgumentException
如果给定的模式是无效的
public void set2DigitYearStart(Date startDate)
startDate
-在解析过程中,两位年将被放置在距离
startDate
到
startDate + 100 years
。
get2DigitYearStart()
public Date get2DigitYearStart()
set2DigitYearStart(java.util.Date)
public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos)
Date
进入日期/时间线和附加的结果给出的
StringBuffer
格式。
format
方法重写,继承类
DateFormat
date
-日期时间值被格式化为日期时间字符串。
toAppendTo
-在新的日期时间是要追加文本。
pos
-格式位置。在输入:一个对齐字段,如果需要的话。输出:对准场的偏移量。
NullPointerException
-如果给定的
date
是
null
。
public AttributedCharacterIterator formatToCharacterIterator(Object obj)
AttributedCharacterIterator
。你可以使用返回的
AttributedCharacterIterator
建立得到的字符串,以及确定得到的字符串信息。
attributedcharacteriterator每个属性的关键将是DateFormat.Field
型,与相应的属性值作为属性的关键一样。
formatToCharacterIterator
方法重写,继承类
Format
obj
-格式化对象
NullPointerException
如果obj是空的。
IllegalArgumentException
如果格式不格式给定的对象,或者如果格式模式字符串无效。
public Date parse(String text, ParsePosition pos)
Date
。
解析文本开始了pos
索引的方法尝试。如果分析成功,那么pos
索引更新索引的最后一个字符后(解析不一定使用所有字符到字符串的末尾),并解析返回的日期。更新pos
可以用来指示下一个调用这个方法的出发点。如果出现错误,那么pos
指标没有发生变化,对pos
误差指标设置为错误发生位置的字符的索引,并返回null。
这一分析操作使用calendar
产生Date
。所有的calendar
的日期时间字段cleared解析之前,以及日期时间字段用于任何失踪的日期时间信息的calendar
的默认值。例如,在解析Date
年份值1970 GregorianCalendar
如果没有年值是从分析操作了。的TimeZone
值可以被改写,根据给定的模式和text
时区值。此前已经设置了呼叫setTimeZone
任何TimeZone
值可能需要恢复为进一步的行动。
parse
方法重写,继承类
DateFormat
text
-
String
,其中一部分会被解析。
pos
-一个指标和误差指标上述信息,
ParsePosition
对象。
Date
解析字符串。在错误的情况下,返回空。
NullPointerException
-如果
text
或
pos
是空的。
public String toPattern()
public String toLocalizedPattern()
public void applyPattern(String pattern)
pattern
-这个日期格式的日期和时间模式
NullPointerException
-如果给定的模式是无效的
IllegalArgumentException
如果给定的模式是无效的
public void applyLocalizedPattern(String pattern)
pattern
-一个字符被映射到新的日期和时间格式这种格式
NullPointerException
-如果给定的模式是无效的
IllegalArgumentException
如果给定的模式是无效的
public DateFormatSymbols getDateFormatSymbols()
setDateFormatSymbols(java.text.DateFormatSymbols)
public void setDateFormatSymbols(DateFormatSymbols newFormatSymbols)
newFormatSymbols
-新的日期和时间格式符号
NullPointerException
-如果给定的newformatsymbols是空的
getDateFormatSymbols()
public Object clone()
SimpleDateFormat
。这也是克隆格式的日期格式符号。
clone
方法重写,继承类
DateFormat
SimpleDateFormat
克隆
Cloneable
public int hashCode()
SimpleDateFormat
。
hashCode
方法重写,继承类
DateFormat
SimpleDateFormat
对象的哈希码值。
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
SimpleDateFormat
平等对象。
equals
方法重写,继承类
DateFormat
obj
-参考对象的比较。
SimpleDateFormat
Object.hashCode()
,
HashMap
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.