公共类
SimpleDateFormat的
延伸的DateFormat
java.lang.Object的
↳ java.text.Format子
↳ java.text.DateFormat
↳ java.text.SimpleDateFormat的
类概述

一个具体的类,在一个语言环境敏感的方式格式化和解析日期。格式变成一个 Date 成 String ,并解析成一个日期变成 一个 String 。

时间模式语法

你可以提供一个描述字符串/接受的模式,但几乎所有的来电者应该使用getDateInstance() ,getDateTimeInstance() ,或getTimeInstance()得到一个现成的实例,为适合用户的语言环境。

你创建这个类的一个实例的主要原因是因为你需要一个特定的机器可读的格式,在这种情况下,你几乎肯定要明确要求,以确保你(而不是ASCII数字格式化/解析,说,阿拉伯数字)。(见“ 警惕的默认区域设置 “)。最有用的非本地化的模式是“YYYY-MM-DD HH:MM:ss.SSSZ” ,对应的ISO 8601国际标准日期格式。

到指定的时间格式,使用时间模式字符串。在此字符串中的任何字符“A”到“Z”或'A'到'z'的特殊对待。所有其他字符,通过逐字。下表中的每个ASCII字母的解释。表中未出现的ASCII字母被保留供将来使用,并尝试使用它是一个错误。

符号 意 介绍 例子
ð 一天一年 (数目) 189
é 一周里的日子 (文字) 星期二
F 每周一天在本月 (数目) 2 (第2次在七月三)
Ğ 时代的标志 (文字) 公元
Ĥ 在一天中的小时(0-23) (数目) 0
ķ am / pm中的小时(0-11) (数目) 0
大号 单机一个月 (文/数字) 七月/ 07
中号 一个月一年 (文/数字) 七月/ 07
小号 秒的小数部分 (数目) 978
W 每月一周 (数目) 2
ž 时区(RFC 822中) (时区) -0800
一 上午/下午标记 (文字) !
Ç 独立日的一周 (文/数字) 周二/ 2
ð 每月一天 (数目) 10
Ĥ am / pm中的小时(1-12) (数目) 12
ķ 在一天中的小时(1-24) (数目) 24
米 分钟小时 (数目) 30
小号 在一分钟二 (数目) 55
瓦特 本周在一年 (数目) 27
Ÿ 年 (数目) 2010
ž 时区 (时区) 太平洋标准时间
“ 逃脱文本 (分隔符) “日期=”
“ 单引号 (文字) 'O'时钟'
一个模式字符的连续副本的数量(“计数”),进一步影响格式。

文字,如果算上4个或更多,使用完整形式;如果存在的话,否则使用短期或缩写形式。ZZZZ可能给太平洋标准时间 ,而ž可能给的PST。请注意,计数并不指定的字段的确切宽度。
数计数的最小位数。较短的值是零填充的宽度,这个宽度更长值溢出。
年被特别处理: YY 截断最后2位数,但不会截断任何其他连续数Ÿ小号。因此, 其中 yyyy 或 y 可能会给2010年 , YY 将给予10。
秒的小数部分也特别处理:他们是在零填充的 权利。
文本/数字:如果罪名是3个或更多,使用文本,否则使用一个数字。因此,MM可能会给07 MMM的同时给七月。
重症监护病房兼容扩展,而不是在RI 大号和Ç两个模式字符。这些都是正确的定位所必需的语言,如俄罗斯,区分之间,也就是说,“六一”和“2010年6月”。

当数值字段直接与相邻中间没有分隔符,它们构成了一个相邻的数字领域的运行。这种运行专门解析。例如,格式为“HHMMSS”解析“123456”,以12:34:56的输入文本,解析输入文本“12345”到1时23分45秒,未能解析“1234”。换句话说,运行的最左边的领域是灵活的,而其他人保持一个固定的宽度。如果解析失败的任何地方运行,然后在最左边的字段将被缩短一个字符,并在整个运行过程中再次被解析。这是重复的,直到解析成功或最左边的领域是一个字符的长度。如果仍然在这一点上失败的解析,解析运行失败。

看到set2DigitYearStart(日期)处理两位数字的年份。

示例代码

如果你格式化供人类使用,你应该使用从返回如上所述的一个实例 的DateFormat。这样的代码:

DateFormat[] formats = new DateFormat[] {
DateFormat.getDateInstance(),
DateFormat.getDateTimeInstance(),
DateFormat.getTimeInstance(),
};
for (DateFormat df : formats) {
System.err.println(df.format(new Date(0)));
}

产生这种输出En_US的设备上运行时,在PDT时区:

12月 31日, 1969年
12月 31日 4 :00 :00 下午
4 :00 :00 PM

任何用户的系统上,将产生类似的适当的本地化人类可读的输出。
如果你的机器使用的格式化,考虑下面的代码:

字符串] 格式= 新 的String [] {
“YYYY-MM-DD” , “YYYY-MM-DD HH:MM”
, “YYYY-MM-DD HH:MMZ”
, “YYYY-MM-DD







%\ N“ 格式,自卫队。格式(新的 日期(0 )));
}

在PDT时区运行时产生此输出:

YYYY - MM - 日1969 - 12 - 31
年- MM - 日1970 - 01 - 01
年- MM - DD HH :毫米- 12 - 31 月16日:00
年- MM - DD HH :毫米- 01 - 01 00 :00
年- MM - DD HH :MMZ

1969 - 12 - 31 16 :00 :00.000 - 0800
年- MM - 月



如这个例子所示,每个SimpleDateFormat的实例有一个时区。这是因为它要求的格式实例称为日期,它代表在UTC的绝对时间。也就是说,日期不进行时区信息。SimpleDateFormat的默认情况下,将使用系统的默认时区。这是适当的,为人类可读的输出(,看到前面的示例),但一般为机器可读的输出,其中含糊不清是一个问题的不适当的。请注意输出,其中包括一段时间,但没有时区,在这个例子中,不能被解析到原始日期。出于这个原因,它几乎总是必要和可取的,包括在输出时区。它也可能是可取的设置格式化的时区为UTC(缓解比较,或使日志更具可读性,例如)。

同步

SimpleDateFormat的是不是线程安全的。用户应当为每个线程创建一个单独的实例。
参见

日历
日期
时区
的DateFormat
总结

[展开]
继承的常量
从类 java.text.DateFormat
[展开]
继承的字段
从类 java.text.DateFormat
公共构造函数
SimpleDateFormat的()
构造一个新的SimpleDateFormat的格式化和解析日期和时间短的风格,为用户的默认语言环境。
SimpleDateFormat的(字符串模式)
构造一个新的SimpleDateFormat使用指定的非本地化的模式和用户的默认语言环境的DateFormatSymbols和日历。
SimpleDateFormat的(字符串模板的DateFormatSymbols值)
构造一个新的SimpleDateFormat使用指定的非本地化的模式的DateFormatSymbols和用户的默认语言环境的日历。
SimpleDateFormat的(String模板,区域设置区域设置)
构造一个新的SimpleDateFormat使用指定的非本地化的模式,并针对指定语言环境的DateFormatSymbols和日历。
公共方法
无效 applyLocalizedPattern(字符串模板)
这个简单的日期格式的格局变化到指定的模式,采用本地化的模式字符。
无效 applyPattern(字符串模板)
改变了这个简单的日期格式的模式,以指定的模式,它使用非本地化的模式字符。
物件 克隆()
SimpleDateFormat的使用相同的模式和属性返回一个新的,因为这简单的日期格式。
布尔 等于(对象对象)
这个简单的日期格式比较指定的对象,并表示如果他们是平等的。
StringBuffer的 格式(日期日期,StringBuffer的缓冲区,FieldPosition fieldPos)
作为一个使用此日期格式的字符串追加到指定的字符串缓冲区的模式的字符串格式指定的日期。
的AttributedCharacterIterator formatToCharacterIterator(目标对象)
格式指定的对象使用这个简单的日期格式的规则和返回的AttributedCharacterIterator与格式化的日期和属性。
日期 get2DigitYearStart()
返回的日期,这是一百年去年同期两位数的年份值开始。
的DateFormatSymbols getDateFormatSymbols()
这个简单的日期格式返回的DateFormatSymbols。
INT 的hashCode()
返回此对象的整数哈希代码。
日期 解析(字符串字符串的ParsePosition位置)
解析一个从指定的字符串所指定的索引开始日期的位置。
无效 set2DigitYearStart(日期日期)
这是一百年去年同期两位数的年份值开始设定日期。
无效 setDateFormatSymbols(的DateFormatSymbols值)
这个简单的日期格式设置的DateFormatSymbols。
串 toLocalizedPattern()
返回这个简单的日期格式,使用本地化的模式字符的格局。
串 toPattern()
返回这个简单的日期格式,使用非本地化的模式字符的格局。
[展开]
继承的方法
从类 java.text.DateFormat
从类 java.text.Format子
从类 java.lang.Object继承
公共构造函数

公众 的SimpleDateFormat ()

日期:API等级1
构造一个新的SimpleDateFormat的格式化和解析日期和时间短的风格,为用户的默认语言环境。参见“ 警惕的默认语言环境 “。
公众 的SimpleDateFormat (字符串模式)

日期:API等级1
构造一个新的SimpleDateFormat使用指定的非本地化的模式和用户的默认语言环境的DateFormatSymbols和日历。参见“ 警惕的默认语言环境 “。
参数

模式 该模式。
抛出

NullPointerException异常 如果模式是空的。
IllegalArgumentException 如果模式不被认为是这个格式化可用。
公众 的SimpleDateFormat (字符串模板的DateFormatSymbols值)

日期:API等级1
构造一个新的SimpleDateFormat使用指定的非本地化的模式的DateFormatSymbols和用户的默认语言环境的日历。参见“ 警惕的默认语言环境 “。
参数

模板 该模式。
值 的DateFormatSymbols。
抛出

NullPointerException异常 如果模式是空的。
IllegalArgumentException 如果模式是无效的。
公众 的SimpleDateFormat (String模板,区域设置区域设置)

日期:API等级1
构造一个新的SimpleDateFormat使用指定的非本地化的模式,并针对指定语言环境的DateFormatSymbols和日历。
参数

模板 该模式。
语言环境 语言环境。
抛出

NullPointerException异常 如果模式是空的。
IllegalArgumentException 如果模式是无效的。
公共方法

无效 applyLocalizedPattern (弦乐模板)

日期:API等级1
这个简单的日期格式的格局变化到指定的模式,采用本地化的模式字符。
参数

模板 本地化的模式。
无效 applyPattern (弦乐模板)

日期:API等级1
改变了这个简单的日期格式的模式,以指定的模式,它使用非本地化的模式字符。
参数

模板 非本地化的模式。
抛出

NullPointerException异常 如果模式是空的。
IllegalArgumentException 如果模式是无效的。
公共 对象 的clone ()

日期:API等级1
SimpleDateFormat的使用相同的模式和属性返回一个新的,因为这简单的日期格式。
返回

浅拷贝了这个简单的日期格式。
参见

Cloneable接口
公共布尔 等于 (对象对象)

日期:API等级1
这个简单的日期格式比较指定的对象,并表示如果他们是平等的。以平等,对象必须是SimpleDateFormat的一个实例,并有相同的DateFormat 属性,模式,的DateFormatSymbols和创造一年。
参数

物件 与此对象进行比较的对象。
返回

如果指定对象是等于这个简单的日期格式,否则虚假的真实。
参见

hashCode()方法
公共 StringBuffer的 格式 (日期为止,StringBuffer的缓冲区,FieldPosition fieldPos)

日期:API等级1
作为一个使用此日期格式的字符串追加到指定的字符串缓冲区的模式的字符串格式指定的日期。
如果该领域的成员字段指定格式字段包含一个值,然后将其beginIndex和endIndex的成员首次出现在这一领域的格式化文本的位置更新。
参数

日期 格式化的日期。
缓冲 目标字符串缓冲区,追加格式化的日期/时间。
fieldPos :一个可选的对齐字段输入输出:在格式化文本的对齐字段的偏移量。
返回

字符串缓冲区。
抛出

IllegalArgumentException 如果有模式中的无效字符。
公共的 的AttributedCharacterIterator formatToCharacterIterator (对象对象)

日期:API等级1
格式指定的对象使用这个简单的日期格式的规则和返回的AttributedCharacterIterator与格式化的日期和属性。
参数

物件 格式对象。
返回

的AttributedCharacterIterator与格式化的日期和属性。
抛出

NullPointerException异常 如果对象是空的。
IllegalArgumentException 如果该对象不能被格式化这个简单的日期格式。
公共的 日期 get2DigitYearStart ()

日期:API等级1
返回的日期,这是一百年去年同期两位数的年份值开始。有关详细信息,请参阅set2DigitYearStart(日期)。
公众 的DateFormatSymbols getDateFormatSymbols ()

日期:API等级1
这个简单的日期格式返回的DateFormatSymbols。
返回

的DateFormatSymbols对象。
公众诠释 的hashCode ()

日期:API等级1
返回此对象的整数哈希代码。合同,任何两个物体为等于(对象)返回真,必须返回相同的哈希码值。这意味着子类的对象, 通常覆盖两种方法既不方法。
请注意,哈希值必须不随时间而改变,除非所用的信息equals比较中也发生了变化。
看到写一个正确的 hashCode方法, 如果你打算实现自己的hashCode方法。
返回

此对象的哈希代码。
公开 日期 解析 (字符串字符串的ParsePosition位置)

日期:API等级1
解析一个从指定的字符串所指定的索引开始日期的位置。如果该字符串成功解析,那么该指数的ParsePosition更新的指数解析文本。出现错误时,该指数保持不变,指数的ParsePosition的错误设置发生错误的位置的索引。
参数

串 使用这个简单的日期格式的模式字符串解析。
位置 输入/输出参数,指定的起始索引字符串从哪里开始解析。如果解析成功,解析文本的索引更新错误,该指数是不变的错误索引设置为发生错误的位置的索引。
返回

日期从解析,或空,如果有一个错误。
抛出

IllegalArgumentException 如果有模式中的无效字符。
公共的无效 set2DigitYearStart (日期日期)

日期:API等级1
这是一百年去年同期两位数的年份值开始设定日期。
当SimpleDateFormat的解析日期字符串使用的缩写一年格局YY,必须解释的缩写一年,相对于一些世纪。它通过调整日期在80年之前,20年后的时间SimpleDateFormat的实例被创建。例如,用一个模式的MM / DD / YY,1月1日创建了一个实例,1997年将其解释的字符串“12年1月11日” 2012年1月11日,但解释的字符串“64年5月4日”为五月4,1964年。在分析过程中,恰好为两个数字,如定义,只包含字符串isDigit(炭),将被解析到默认的世纪。其他任何数字字符串,如一个数字串,三个或更多的数字串,或两个数字串是不是所有的数字(例如,“-1” ),字面解释。因此,使用相同的模式, “01/02/3”及“01/02/003”解析为公元1月2日,3。同样,“01/02/-3”被解析为1月2日,公元前4世纪。
如果今年的格局不会有整整两个'Y'字符,今年是字面解释,无论位数。因此,使用模式MM / DD / YYYY,“12年1月11日”被解析为1月11日,12位AD
公共的无效 setDateFormatSymbols (的DateFormatSymbols价值)

日期:API等级1
这个简单的日期格式设置的DateFormatSymbols。
参数

值 新的DateFormatSymbols对象。
公共 字符串 toLocalizedPattern ()

日期:API等级1
返回这个简单的日期格式,使用本地化的模式字符的格局。
返回

本地化的模式。
公共 字符串 toPattern ()

日期:API等级1
返回这个简单的日期格式,使用非本地化的模式字符的格局。
返回

非本地化的模式。

更多相关文章

  1. Android(安卓)xml 格式 随笔
  2. Android(安卓)设计模式之适配器模式
  3. Android字节、十进制、十六进制、字符串之间的相互转换
  4. 对Android任务栈的理解(很乱,只是随便记下我的总结)
  5. Android开发架构模式MVP的简单思考
  6. Android(安卓)从原型模式看java实例化对象clone和new的区别
  7. 【android】使用Event Bus模式解耦Android(安卓)App组件间通信
  8. android 6.0的DozeMode低功耗模式 及 引起的进程保活问题
  9. 【设计模式与Android】迭代器模式——容器遍历,细节隐藏

随机推荐

  1. Android 最火快速开发框架AndroidAnnotat
  2. Android(安卓)adb shell启动应用程序的方
  3. Sqlite在Android上的一个Bug - 临时文件
  4. android 中targetSdkVersion和与target属
  5. Android 我的 Android Studio 配置文件
  6. android 嵌入服务端页面二 之WebView与页
  7. android 定义手势
  8. PC通过USB连接Android通信(Socket)
  9. android 各系统区别(android 1.5- androi
  10. android 处理鼠标滚轮事件