|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.text.Format
java.text.DateFormat
java.text.SimpleDateFormat
public class SimpleDateFormat
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 来创建日期-时间格式器。每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式器。可以根据需要使用 applyPattern 方法来修改格式模式。有关使用这些方法的更多信息,请参阅 DateFormat。
日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。
定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):
模式字母通常是重复的,其数量确定其精确表示:
字母 日期或时间元素 表示 示例 GEra 标志符 Text ADy年 Year 1996;96M年中的月份 Month July;Jul;07w年中的周数 Number 27W月份中的周数 Number 2D年中的天数 Number 189d月份中的天数 Number 10F月份中的星期 Number 2E星期中的天数 Text Tuesday;TueaAm/pm 标记 Text PMH一天中的小时数(0-23) Number 0k一天中的小时数(1-24) Number 24Kam/pm 中的小时数(0-11) Number 0ham/pm 中的小时数(1-12) Number 12m小时中的分钟数 Number 30s分钟中的秒数 Number 55S毫秒数 Number 978z时区 General time zone Pacific Standard Time;PST;GMT-08:00Z时区 RFC 822 time zone -0800
Calendar 是格里高利历,则应用以下规则。SimpleDateFormat 必须相对于某个世纪来解释缩写的年份。这通过将日期调整为 SimpleDateFormat 实例创建之前的 80 年和之后 20 年范围内来完成。例如,在 "MM/dd/yy" 模式下,如果 SimpleDateFormat 实例是在 1997 年 1 月 1 日创建的,则字符串 "01/11/12" 将被解释为 2012 年 1 月 11 日,而字符串 "05/04/64" 将被解释为 1964 年 5 月 4 日。在解析时,只有恰好由两位数字组成的字符串(如 Character.isDigit(char) 所定义的)被解析为默认的世纪。其他任何数字字符串将照字面意义进行解释,例如单数字字符串,3 个或更多数字组成的字符串,或者不都是数字的两位数字字符串(例如"-1")。因此,在相同的模式下, "01/02/3" 或 "01/02/003" 解释为公元 3 年 1 月 2 日。同样,"01/02/-3" 解析为公元前 4 年 1 月 2 日。
GMTOffsetTimeZone:
GMT Sign Hours : Minutes
Sign: one of
+ -
Hours:
Digit
Digit Digit
Minutes:
Digit Digit
Digit: one of
0 1 2 3 4 5 6 7 8 9
Hours 必须在 0 到 23 之间,Minutes 必须在 00 到 59 之间。格式是与语言环境无关的,并且数字必须取自 Unicode 标准的 Basic Latin 块。
对于解析来说,RFC 822 time zones 也是可接受的。
RFC822TimeZone:
Sign TwoDigitHours Minutes
TwoDigitHours:
Digit Digit
TwoDigitHours 必须在 00 和 23 之间。其他定义请参阅 general time zones。
对于解析来说,general time zones 也是可接受的。
SimpleDateFormat 还支持本地化日期和时间模式 字符串。在这些字符串中,以上所述的模式字母可以用其他与语言环境有关的模式字母来替换。SimpleDateFormat 不处理除模式字母之外的文本本地化;而由类的客户端来处理。
日期和时间模式 结果 "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
日期格式是不同步的。建议为每个线程创建独立的格式实例。如果多个线程同时访问一个格式,则它必须是外部同步的。
Calendar,
TimeZone,
DateFormat,
DateFormatSymbols,
序列化表格| 嵌套类摘要 |
|---|
| 从类 java.text.DateFormat 继承的嵌套类/接口 |
|---|
DateFormat.Field |
| 字段摘要 |
|---|
| 构造方法摘要 | |
|---|---|
SimpleDateFormat()
用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。 |
|
SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。 |
|
SimpleDateFormat(String pattern,
DateFormatSymbols formatSymbols)
用给定的模式和日期符号构造 SimpleDateFormat。 |
|
SimpleDateFormat(String pattern,
Locale locale)
用给定的模式和给定语言环境的默认日期格式符号构造 SimpleDateFormat。 |
|
| 方法摘要 | |
|---|---|
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()
返回描述此日期格式的模式字符串。 |
| 从类 java.text.Format 继承的方法 |
|---|
format, parseObject |
| 从类 java.lang.Object 继承的方法 |
|---|
finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
public SimpleDateFormat()
SimpleDateFormat。注:此构造方法可能不支持所有语言环境。要覆盖所有地区,请使用 DateFormat 类中的工厂方法。
public SimpleDateFormat(String pattern)
SimpleDateFormat。注:此构造方法可能不支持所有语言环境。要覆盖所有语言环境,请使用 DateFormat 类中的工厂方法。
pattern - 描述日期和时间格式的模式
NullPointerException - 如果给定的模式为 null
IllegalArgumentException - 如果给定的模式无效
public SimpleDateFormat(String pattern,
Locale locale)
SimpleDateFormat。注:此构造方法可能不支持所有语言环境。要覆盖所有语言环境,请使用 DateFormat 类中的工厂方法。
pattern - 描述日期和时间格式的模式locale - 其日期格式符号要被使用的语言环境
NullPointerException - 如果给定的模式或语言环境为 null
IllegalArgumentException - 如果给定的模式无效
public SimpleDateFormat(String pattern,
DateFormatSymbols formatSymbols)
SimpleDateFormat。
pattern - 描述日期和时间格式的模式formatSymbols - 要用来格式化的日期格式符号
NullPointerException - 如果给定的模式或 formatSymbols 为 null
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。
DateFormat 中的 formatdate - 要被格式化为日期-时间字符串的日期-时间值。toAppendTo - 新的日期-时间文本被添加的位置。pos - 格式化的位置。输入时:如果需要,是一个对齐字段。输出时:为对齐字段的偏移量。
NullPointerException - 如果给定的日期为 nullpublic AttributedCharacterIterator formatToCharacterIterator(Object obj)
AttributedCharacterIterator 的对象。可以使用返回的 AttributedCharacterIterator 来生成所得的字符串,以及确定关于所得字符串的信息。
AttributedCharacterIterator 的每个属性键都是 DateFormat.Field 类型的,对应的属性值与属性键相同。
Format 中的 formatToCharacterIteratorobj - 要格式化的对象
NullPointerException - 如果 obj 为 null。
IllegalArgumentException - 如果 Format 不能格式化给定的对象,或者 Format 的模式字符串无效。
public Date parse(String text,
ParsePosition pos)
Date。
此方法试图解析从 pos 给定的索引处开始的文本。如果解析成功,则将 pos 的索引更新为所用最后一个字符后面的索引(不必对直到字符串结尾的所有字符进行解析),并返回解析得到的日期。更新后的 pos 可以用来指示下次调用此方法的起始点。如果发生错误,则不更改 pos 的索引,并将 pos 的错误索引设置为发生错误处的字符索引,并且返回 null。
DateFormat 中的 parsetext - 应该解析其中一部分的 String。pos - 具有以上所述的索引和错误索引信息的 ParsePosition 对象。
Date。如果发生错误,则返回 null。
NullPointerException - 如果 text 或 pos 为 null。DateFormat.setLenient(boolean)public String toPattern()
public String toLocalizedPattern()
public void applyPattern(String pattern)
pattern - 此日期格式的新的日期和时间模式
NullPointerException - 如果给定的模式为 null
IllegalArgumentException - 如果给定的模式无效public void applyLocalizedPattern(String pattern)
pattern - 要被映射到此格式的新的日期和时间格式模式的字符串
NullPointerException - 如果给定的模式为 null
IllegalArgumentException - 如果给定的模式无效public DateFormatSymbols getDateFormatSymbols()
setDateFormatSymbols(java.text.DateFormatSymbols)public void setDateFormatSymbols(DateFormatSymbols newFormatSymbols)
newFormatSymbols - 新的日期和时间格式符号
NullPointerException - 如果给定的 newFormatSymbols 为 nullgetDateFormatSymbols()public Object clone()
SimpleDateFormat 的一个副本。此副本也将复制格式的日期格式符号。
DateFormat 中的 cloneSimpleDateFormat 的一个副本Cloneablepublic int hashCode()
SimpleDateFormat 对象的哈希码值。
DateFormat 中的 hashCodeSimpleDateFormat 对象的哈希码值。Object.equals(java.lang.Object),
Hashtablepublic boolean equals(Object obj)
SimpleDateFormat 的相等性。
DateFormat 中的 equalsobj - 要与之比较的引用对象。
SimpleDateFormat 相等Object.hashCode(),
Hashtable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。