SimpleDateFormat (Java Platform SE 8 )()

  本篇文章为你整理了SimpleDateFormat (Java Platform SE 8 )()的详细内容,包含有 SimpleDateFormat (Java Platform SE 8 ),希望能帮助你了解 SimpleDateFormat (Java Platform SE 8 )。

  


public class SimpleDateFormat

 

  extends DateFormat

 

   SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。

   它允许格式化(日期文本),解析(文本日期)和归一化。

   SimpleDateFormat允许您从选择日期时间格式化的任何用户定义的模式开始。 不过,建议您创建一个日期-时间格式有两种getTimeInstance , getDateInstance ,或getDateTimeInstance在DateFormat 。 这些类方法中的每一个都可以返回使用默认格式模式初始化的日期/时间格式化程序。 您可以根据需要使用applyPattern方法修改格式模式。 有关使用这些方法的更多信息,请参见DateFormat 。

   日期和时间模式

   日期和时间格式由日期和时间模式字符串指定。 在日期和时间模式字符串中,从A到Z和从a到z的非引号的字母被解释为表示日期或时间字符串的组件的模式字母。 可以使用单引号( )引用文本,以避免解释。 ""代表单引号。 所有其他字符不被解释; 在格式化过程中,它们只是复制到输出字符串中,或者在解析过程中与输入字符串匹配。

   定义了以下图案字母(所有其他字符从A到Z和从a到z被保留):

  
Text:对于格式化,如果模式字母的数量是4以上,则使用完整的形式; 否则,如果有的话,使用简短或缩写形式。 对于解析,两种形式都是接受的,与模式字母的数量无关。
 

   Number:对于格式化,模式字母的数量是最小位数,而较短的数字将零填充到此数量。 对于解析,模式字母的数量将被忽略,除非需要分隔两个相邻的字段。
 

   Year:如果格式化程序的Calendar是公历,则应用以下规则。
 

   对于格式化,如果模式字母数为2,那么年份将被截断为2位数; 否则被解释为number 。

   对于解析,如果模式字母的数量大于2,则年份将按字面解释,而不管数字的数量。 所以使用“MM / dd / yyyy”模式,“01/11/12”解析到公元12年1月11日

   为了使用缩写年份模式(“y”或“yy”)进行解析, SimpleDateFormat必须解释相对于某个世纪的缩写年份。 它是通过将日期调整为在创建SimpleDateFormat实例之后的80年之前和20年之后进行的。 例如,使用1997年1月1日创建的“MM / dd / yy”模式和SimpleDateFormat实例,字符串“01/11/12”将被解释为2012年1月11日,而字符串“05/04 / 64“将被解释为1964年5月4日。在解析期间,只有由Character.isDigit(char)定义的两个数字组成的字符串将被解析为默认世纪。 任何其他数字字符串,例如一位数字字符串,三位或三位以上数字字符串,或两位数字字符串(不全部为数字)(例如“-1”),均按字面解释。 所以“01/02/3”或“01/02/003”的解析方式与公元3年1月2日相同。 同样,“01/02 / -3”在公元前4年1月2日被解析。

   否则,将应用日历系统特定的表单。 对于格式化和解析两者,如果模式字母数为4以上,则使用特定日历long form 。 否则,使用一个特定日历short or abbreviated form 。
如果周年Y被指定,并且calendar不支持任何week years ,则使用日历年( y )。 可以通过致电getCalendar()测试周年的支持。 isWeekDateSupported() 。
 

   Month:如果模式字母数为3以上,则该月份被解释为text ; 否则,它被解释为number 。
 

   字母M产生上下文相关的月份名称,例如嵌入的名称形式。 如果DateFormatSymbols已经与构造明确设置SimpleDateFormat(String, DateFormatSymbols)或方法setDateFormatSymbols(DateFormatSymbols) ,由给定月份名称DateFormatSymbols被使用。

   L字母生成独立形式的月份名称。

  
 

   General time zone:如果他们有姓名,时区将被解释为text 。 对于表示GMT偏移值的时区,使用以下语法:

 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

小时数必须在0到23之间, 分钟必须介于00和59之间。格式不区分大小写,数字必须取自Unicode标准的基本拉丁方块。 为了解析, RFC 822 time zones也被接受。
 

 

   RFC 822 time zone:对于格式化,使用RFC 822 4位数时区格式:

 RFC822TimeZone:

 

   Sign TwoDigitHours Minutes

   TwoDigitHours:

   Digit Digit

TwoDigitHours必须介于00和23之间。其他定义与general time zones相同 。 为了解析, general time zones也被接受。

 

   ISO 8601 Time zone:模式字母的数量指定格式和解析的格式如下:

 ISO8601TimeZone:

 

   OneLetterISO8601TimeZone

   TwoLetterISO8601TimeZone

   ThreeLetterISO8601TimeZone

   OneLetterISO8601TimeZone:

   Sign TwoDigitHours

   TwoLetterISO8601TimeZone:

   Sign TwoDigitHours Minutes

   ThreeLetterISO8601TimeZone:

   Sign TwoDigitHours : Minutes

   Z

其他定义与general time zones或RFC 822 time zones相同 。 对于格式化,如果GMT的偏移值为0,则生成"Z" 。 如果模式字母的数量为1,则忽略小时数。 例如,如果模式为"X" ,时区为"GMT+05:30" ,则生成"+05" 。

 

   为了解析, "Z"被解析为UTC时区指示符。 General time zones 不被接受。

   如果模式字母的数目是4或更多, IllegalArgumentException被构建时抛出SimpleDateFormat或applying a pattern 。

   SimpleDateFormat还支持本地化的日期和时间模式字符串。

   在这些字符串中,上述的图案字母可以被替换为其他与区域相关的图案字母。

   SimpleDateFormat不处理除图案字母之外的文本的本地化;

   这取决于课堂的客户。

   以下示例显示如何在美国地区中解释日期和时间模式。

   给定的日期和时间是2001-07-04 12:08:56当地时间在美国太平洋时间时区。

  
Synchronization

   日期格式不同步。 建议为每个线程创建单独的格式实例。 如果多个线程同时访问格式,则必须在外部进行同步。

  
构造方法详细信息

   SimpleDateFormat

publicSimpleDateFormat()

 

   构造一个SimpleDateFormat使用默认模式和日期格式符号为默认的FORMAT区域设置。

   注意:此构造函数可能不支持所有区域设置。

   要全面覆盖,请使用DateFormat类中的工厂方法。

   SimpleDateFormat

publicSimpleDateFormat(Stringpattern)

 

   使用给定模式SimpleDateFormat并使用默认的FORMAT语言环境的默认日期格式符号。

   注意:此构造函数可能不支持所有区域设置。

   要全面覆盖,请使用DateFormat类中的工厂方法。

   这相当于调用SimpleDateFormat(pattern, Locale.getDefault(Locale.Category.FORMAT)) 。

  
SimpleDateFormat

publicSimpleDateFormat(Stringpattern,

 

   DateFormatSymbolsformatSymbols)

 

   使用给定的模式和日期格式符号构造一个

   SimpleDateFormat 。

  
get2DigitYearStart

publicDateget2DigitYearStart()

 

   返回100年期间的开始日期,2位数年份被解释为在内。

  
formatToCharacterIterator

publicAttributedCharacterIteratorformatToCharacterIterator(Objectobj)

 

   格式化一个对象,生成一个AttributedCharacterIterator 。

   您可以使用返回的AttributedCharacterIterator构建生成的字符串,以及确定有关生成的字符串的信息。

   AttributedCharacterIterator的每个属性的关键将是类型的DateFormat.Field ,与相应的属性值是一样的属性键。

  
parse

publicDateparse(Stringtext,

 

   ParsePositionpos)

 

   从字符串中解析文本以产生一个Date 。

   该方法尝试从pos给出的索引开始解析文本。 如果解析成功,那么pos的索引将在使用最后一个字符之后更新为索引(解析不一定使用字符串末尾的所有字符),并返回解析的日期。 更新的pos可用于指示下一次调用此方法的起始点。 如果发生错误,则pos的索引不改变, pos的错误索引设置为发生错误的pos的索引,返回null。

   这个解析操作使用calendar来生成一个Date 。 在解析之前,所有calendar的日期时间字段为cleared ,日期时间字段的默认值为calendar用于任何缺少的日期时间信息。 例如,被分析的年份值Date是1970年GregorianCalendar如果没有年份值从解析操作说明。 所述TimeZone值可以根据给定的模式和在时区值被覆盖, text 。 任何TimeZone先前已通过调用设定值setTimeZone可能需要恢复的进一步行动。

  
toPattern

publicStringtoPattern()

 

   返回描述此日期格式的模式字符串。

  
toLocalizedPattern

publicStringtoLocalizedPattern()

 

   返回描述此日期格式的本地化模式字符串。

  
applyPattern

publicvoidapplyPattern(Stringpattern)

 

   将给定的模式字符串应用于此日期格式。

  
applyLocalizedPattern

publicvoidapplyLocalizedPattern(Stringpattern)

 

   将给定的本地化模式字符串应用于此日期格式。

  
getDateFormatSymbols

publicDateFormatSymbolsgetDateFormatSymbols()

 

   获取此日期格式的日期和时间格式符号的副本。

  
setDateFormatSymbols

publicvoidsetDateFormatSymbols(DateFormatSymbolsnewFormatSymbols)

 

   设置此日期格式的日期和时间格式符号。

  
clone

publicObjectclone()

 

   创建一个这个SimpleDateFormat的副本。

   这也克隆了格式的日期格式符号。

  
equals

publicbooleanequals(Objectobj)

 

   将给定的对象与此

   SimpleDateFormat进行比较以获得相等性。

  以上就是SimpleDateFormat (Java Platform SE 8 )()的详细内容,想要了解更多 SimpleDateFormat (Java Platform SE 8 )的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: