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 GEra designator Text ADyYear Year 1996;96YWeek year Year 2009;09MMonth in year (context sensitive) Month July;Jul;07LMonth in year (standalone form) Month July;Jul;07wWeek in year Number 27WWeek in month Number 2DDay in year Number 189dDay in month Number 10FDay of week in month Number 2EDay name in week Text Tuesday;TueuDay number of week (1 = Monday, ..., 7 = Sunday) Number 1aAm/pm marker Text PMHHour in day (0-23) Number 0kHour in day (1-24) Number 24KHour in am/pm (0-11) Number 0hHour in am/pm (1-12) Number 12mMinute in hour Number 30sSecond in minute Number 55SMillisecond Number 978zTime zone General time zone Pacific Standard Time;PST;GMT-08:00ZTime zone RFC 822 time zone -0800XTime 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。Ztwoletteriso8601timezone:标志twodigithours分钟Zthreeletteriso8601timezone:标志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.FieldAM_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, setTimeZoneformat, parseObjectpublic 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.