当前位置 类层次 (JDK) 所有类 (JDK) 所有域和方法 (JDK)

类 java.text.SimpleDateFormat

java.lang.Object
   |
   +----java.text.Format
           |
           +----java.text.DateFormat
                   |
                   +----java.text.SimpleDateFormat

public class SimpleDateFormat
extends DateFormat

SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。

SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中的 getTimeInstancegetDateInstancegetDateTimeInstance 创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序。 可以根据需要用 applyPattern 方法修改格式化方式。 关于使用这些方法的更多信息,请参见 DateFormat

时间格式语法:

使用一个 time pattern 字符串指定时间格式。 在这种方式下,所有的 ASCII 字母被保留为模式字母,定义如下:

 符号     含义                    表示                示例
 ------   -------                 ------------        -------
 G        年代标志符              (Text)              AD
 y        年                      (Number)            1996
 M        月                      (Text & Number)     July & 07
 d        日                      (Number)            10
 h        时 在上午或下午 (1~12)  (Number)            12
 H        时 在一天中 (0~23)      (Number)            0
 m        分                      (Number)            30
 s        秒                      (Number)            55
 S        毫秒                    (Number)            978
 E        星期                    (Text)              Tuesday
 D        一年中的第几天          (Number)            189
 F        一月中第几个星期几      (Number)            2  (2nd Wed in July)
 w        一年中第几个星期        (Number)            27
 W        一月中第几个星期        (Number)            2
 a        上午 / 下午 标记符      (Text)              PM
 k        时 在一天中 (1~24)      (Number)            24
 K        时 在上午或下午 (0~11)  (Number)            0
 z        时区                    (Text)      Pacific Standard Time
 '        文本转义符              (Delimiter)
 ''       单引号                  (Literal)           '
 
模式字母的数目决定了格式。

(Text):4 个或更多模式字母 -- 使用完全形式, < 4 -- 使用短形式或缩写形式,如果存在。

(Number):数字的最小位数。 短数字前面加零。Year 作特殊处理;即,如果 'y' 的位数是 2,Year 将被截取为 2 位。

(Text & Number):3 位或多于 3 位,使用文本,否则使用数值。

在该模式下,任何不在范围 ['a'..'z'] 和 ['A'..'Z'] 中的字符将被作为被括起来的文本。 例如,诸如 ':'、'.'、' '、'#' 和 '@' 的字符将出现在结果时间文本中,即使它们没有用单引号括起来。

一个包含任何无效模式字母的模式在格式化或语法分析时将抛出异常。

使用 US 语言环境的示例:

 格式化模式                             结果
 --------------                         -------
 "yyyy.MM.dd G 'at' hh:mm:ss z"    ->>  1996.07.10 AD at 15:08:56 PDT
 "EEE, MMM d, ''yy"                ->>  Wed, July 10, '96
 "h:mm a"                          ->>  12:08 PM
 "hh 'o''clock' a, zzzz"           ->>  12 o'clock PM, Pacific Daylight Time
 "K:mm a, z"                       ->>  0:00 PM, PST
 "yyyyy.MMMMM.dd GGG hh:mm aaa"    ->>  1996.July.10 AD 12:08 PM
 
代码示例:
 
SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, "PST"); pdt.setStartRule(DateFields.APRIL, 1, DateFields.SUNDAY, 2*60*60*1000); pdt.setEndRule(DateFields.OCTOBER, -1, DateFields.SUNDAY, 2*60*60*1000); // Format the current time. SimpleDateFormat formatter = new SimpleDateFormat ("yyyy.mm.dd e 'at' hh:mm:ss a zzz"); Date currentTime_1 = new Date(); String dateString = formatter.format(currentTime_1); // Parse the previous string back into a Date. ParsePosition pos = new ParsePosition(0); Date currentTime_2 = formatter.parse(dateString, pos);
在本例中,由分析获得的时间值 currentTime_2 将与 currentTime_1 相等。但是如果当使用“时 在上午/下午”模式符号时,在该格式化模式中省略 am/pm 标记符 'a',它们可能不相等。 当格式化下午的时间时,可能会丢失这个信息。

当分析一个使用缩写的年模式的数字串时,SimpleDateFormat 必须解释把缩写的年与某个世纪相对应。它通过把日期调整到 SimpleDateFormat 实例创建时间 80 年以前至 20 年以后的范围内进行解释。例如,使用 MM/dd/yy 模式和在 1997 年 1 月 1 日 创建的 SimpleDateFormat 实例,字符串 "01/11/12" 将被解释为 2012 年 1 月 11 日,而字符串 "05/04/64" 将被解释为1964 年 5 月 4 日。

对于没有名字的时区,使用字符串 GMT+hours:minutes 或 GMT-hours:minutes。

日历定义了一个星期的第一天,一年的第一个星期,小时是否以零开始 (0 到 12 或 24) 和时区。 有一种公共的十进制格式处理所有数字;数字位数由程序根据该模式处理。

参见:
Calendar, GregorianCalendar, TimeZone, DateFormat, DateFormatSymbols, DecimalFormat

构造子索引

SimpleDateFormat()
用缺省语言环境的缺省模式造一个 SimpleDateFormat。
SimpleDateFormat(String)
用缺省语言环境中的给定模式构造一个 SimpleDateFormat。
SimpleDateFormat(String, DateFormatSymbols)
用给定的模式和语言环境特定的符号数据构造一个 SimpleDateFormat。
SimpleDateFormat(String, Locale)
用给定的模式和语言环境构造一个 SimpleDateFormat。

方法索引

applyLocalizedPattern(String)
将给定的本地化的模式字符串应用到该数据格式中。
applyPattern(String)
将给定的非本地化的模式字符串应用到该数据格式中。
clone()
覆盖 Cloneable
equals(Object)
覆盖 equals。
format(Date, StringBuffer, FieldPosition)
覆盖 DateFormat

格式化一个日期或时间,它是从 GMT 1970 年 1 月 1 日 0 时 0 分 0 秒起的标准毫秒数。

getDateFormatSymbols()
获得日期/时间的格式化数据。
hashCode()
覆盖 hashCode。
parse(String, ParsePosition)
覆盖 DateFormat
setDateFormatSymbols(DateFormatSymbols)
允许设置日期/时间的格式化数据。
toLocalizedPattern()
返回描述该日期格式的本地化的模式字符串。
toPattern()
返回描述该日期格式的模式字符串。

构造子

SimpleDateFormat
 public SimpleDateFormat()
用缺省语言环境的缺省模式造一个的 SimpleDateFormat。 注意: 并非所有的语言环境都支持 SimpleDateFormat;为了能够通用,使用 DateFormat 类的工厂方法。

参见:
DateFormat
SimpleDateFormat
 public SimpleDateFormat(String pattern)
用缺省语言环境中的给定模式构造一个 SimpleDateFormat。 注意: 并非所有的语言环境都支持 SimpleDateFormat;为了能够通用,使用 DateFormat 类的工厂方法。

SimpleDateFormat
 public SimpleDateFormat(String pattern,
                         Locale loc)
用给定的模式和语言环境构造一个 SimpleDateFormat。 注意: 并非所有的语言环境都支持 SimpleDateFormat;为了能够通用,使用 DateFormat 类的工厂方法。

SimpleDateFormat
 public SimpleDateFormat(String pattern,
                         DateFormatSymbols formatData)
用给定的模式和特定的语言环境的符号数据构造一个 SimpleDateFormat。


方法

格式
 public StringBuffer format(Date date,
                            StringBuffer toAppendTo,
                            FieldPosition pos)
覆盖 DateFormat

格式化一个日期或时间,它是从 GMT 1970 年 1 月 1 日 0 时 0 分 0 秒起的标准毫秒数。

示例:使用 US 语言环境: "yyyy.MM.dd e 'at' HH:mm:ss zzz" ->> 1996.07.10 AD at 15:08:56 PDT

参数:
date - 格式化到日期_时间字符串中的日期_时间值。
toAppendTo - 新的日期_时间文本被添加的位置。
pos - 格式化位置。对于输入:一个 alignment 域,如果需要。 对于输出:alignment 域的偏移量。
返回值:
格式化的日期_时间字符串。
覆盖:
DateFormat 中的 format
参见:
DateFormat
parse
 public Date parse(String text,
                   ParsePosition pos)
覆盖 DateFormat

覆盖:
DateFormat 中的 parse
参见:
DateFormat
toPattern
 public String toPattern()
返回描述该日期格式的模式字符串。

toLocalizedPattern
 public String toLocalizedPattern()
返回描述该日期格式的本地化的模式字符串。

applyPattern
 public void applyPattern(String pattern)
将给定的非本地化的模式字符串应用到该数据格式中。

applyLocalizedPattern
 public void applyLocalizedPattern(String pattern)
将给定的本地化的模式字符串应用到该数据格式中。

getDateFormatSymbols
 public DateFormatSymbols getDateFormatSymbols()
获得日期/时间的格式化数据。

返回值:
返回与该日期_时间格式化程序相关的日期_时间格式化数据。
setDateFormatSymbols
 public void setDateFormatSymbols(DateFormatSymbols newFormatSymbols)
允许设置日期/时间的格式化数据。

参数:
newFormatData - 给定的日期_时间格式化数据。
clone
 public Object clone()
覆盖 Cloneable

覆盖:
DateFormat 中的 clone
hashCode
 public int hashCode()
覆盖 hashCode。 为 SimpleDateFormat 对象生成散列码。

覆盖:
DateFormat中的 hashCode
equals
 public boolean equals(Object obj)
覆盖 equals。

覆盖:
DateFormat 中的 equals

当前位置 类层次 (JDK) 所有类 (JDK) 所有域和方法 (JDK)