本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
日期时间转换函数
您可以使用带图案的字母指定日期和时间格式。日期和时间模式字符串使用从 “A” 到 “Z” 以及从 “a” 到 “z” 的无引号字母,每个字母代表一个格式化元素。
有关更多信息,请参阅 。类 SimpleDateFormat
如果您包含其他字符,则它们将在格式化期间合并到输出字符串中,或者在解析期间与输入字符串进行比较。
定义了下表中的模式字母(保留从 'A' 到 'Z' 以及从 'a' 到 'z' 的所有其他字符)。
| 信 | 日期或时间组件 | 演示文稿 | 示例 |
|---|---|---|---|
|
y |
年份 |
年份 |
yyyy; yy 2018; 18 |
|
Y |
星期年 |
年份 |
YYYY; YY 2009; 09 |
|
M |
一年中的月 |
月份 |
嗯; 嗯; MM 七月; 七月; 07 |
|
w |
一年中的周 |
数字 |
ww; 27 |
|
W |
monthonth |
数字 |
W 2 |
|
D |
一年中的日期 |
数字 |
DDD 321 |
|
d |
month 中的日期 |
数字 |
dd 10 |
|
F |
month 中的日期 |
数字 |
F 2 |
|
E |
周中的日名 |
文本 |
星期二;星期二 |
|
u |
星期数(1 = 星期一,...,7 = 星期日) |
数字 |
1 |
|
a |
上午/下午标记 |
文本 |
下午 |
|
H |
一天中的小时 (0-23) |
数字 |
0 |
|
k |
一天中的小时 (1-24) |
数字 |
24 |
|
K |
上午/下午的时间 (0-11) |
数字 |
0 |
|
h |
上午/下午小时 (1-12) |
数字 |
12 |
|
m |
一小时中的分钟 |
数字 |
30 |
|
s |
分钟内秒 |
数字 |
55 |
|
S |
毫秒 |
数字 |
978 |
|
z |
时区 |
一般时区 |
太平洋标准时间;太平洋标准时间;GMT-08:00 |
|
Z |
时区 |
RFC 822 时区 |
-0800 |
|
X |
时区 |
ISO 8601 时区 |
-08; -0800;-08:00 |
您可以按照 YYYY 的行重复图案字母来确定确切的表示形式。
文本
如果重复模式字母的数量为 4 个或更多,则使用完整格式;否则,使用简短或缩写形式(如果有)。解析时,两种形式都可接受,与模式字母的数量无关。
数字
格式化时,模式字母的数量是最小位数,较短的数字用零填充到这个数值。在解析时,除非需要分隔两个相邻的字段,否则会忽略模式字母的数量。
年份
如果格式化程序的日历是公历,则应用以下规则。
-
格式化时,如果模式字母的数量为 2,则将年份截断为 2 位数;否则将解释为数字。
-
为了进行解析,如果模式字母的数量大于 2,则无论数字多少,都按字面解释年份。因此,使用 “mm/dd/yyyy” 模式,“01/11/12” 解析到公元 1 月 11 日 12 日
要使用缩写的年份模式(“y” 或 “yy”)进行解析, SimpleDateFormat 必须解释相对于某个世纪的缩写年份。它通过将日期调整为在 80 年之前 80 年之内和之后 20 年来做到这一点 SimpleDateFormat 实例已创建。例如,使用 “mm/dd/YY” 模式和 SimpleDateFormat 创建于 2018 年 1 月 1 日的实例,字符串 “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” 被解析为公元前 4 年 1 月 2 日。
否则,将应用日历系统特定的表单。对于格式化和解析,如果模式字母的数量为 4 或更多,则使用日历特定的长格式。否则,将使用日历特定的简短或缩写形式。