日期、时间和时间戳记的格式是由字母模式指定的,每个字母表示日期或时间的组件。这些字符是区分大小写的,并且从 a 到 z 以及从 A 到 Z 的所有字母将解析为日期或时间的组件。
要在文本未解析为日期或时间的组件的情况下显示日期、时间或时间戳记中的字母,用单引号将字母括起来。要在日期、时间或时间戳记中显示单引号,请使用两个单引号。
下表列示日期、时间或时间戳记模式中的字母及它们的值。
字母 | 日期或时间组件 | 类型 | 示例 |
---|---|---|---|
G | Era designator | 文本 | AD |
y | 年份 | 年份 | 1996;96 |
M | 月份 | 月份 | July;Jul;07 |
w | 当年的周 | 数字 | 27 |
W | 当月的周 | 数字 | 2 |
D | 当年的某天 | 数字 | 189 |
d | 当月的某天 | 数字 | 10 |
F | 星期几 | 数字 | 2 |
E | 星期几 | 文本 | Tuesday;Tue |
a | AM/PM 标记 | 文本 | PM |
H | 当天的小时(0-23) | 数字 | 0 |
k | 当天的小时(1-24) | 数字 | 24 |
K | 上午或下午的小时(0-11) | 数字 | 0 |
h | 上午或下午的小时(1-12) | 数字 | 12 |
m | 小时内的分钟 | 数字 | 30 |
s | 分钟内的秒 | 数字 | 55 |
S | 毫秒 | 数字 | 978 |
z | 时区 | 常规时区 | 太平洋标准时间;PST;GMT-08:00 |
Z | 时区 | RFC 822 时区 | -800 |
C | 世纪 | 世纪 | 20;21 |
在模式中连续使用的字母的数目确定该组字母的解释和解析的方式。解释取决于字母的类型。同时,解释也取决于该模式是用于定义格式还是解析。以下列表描述字母类型以及不同数目的字母影响解释的方式。
对于解析,如果模式字母的数目不是 2,则年份会以文字方式解释,不管位数如何都是如此。例如,模式 MM/dd/yyyy 指定的值 01/11/12 解析为公元 12 年 1 月 11 日。同一模式指定的值 01/02/3 或 01/02/0003 解析为公元 3 年 1 月 2 日。同样,同一模式指定的值 01/02/-3 解析为公元前 4 年 1 月 2 日。
对于解析,如果模式为 yy,则解析器会确定相对于当年的完整年份。解析器假定两位年份在处理时间的 80 年前或 20 年后的范围内。例如,如果当年为 2004,则模式 MM/dd/yy 指定的值 01/11/12 解析为 2012 年 1 月 11 日,而同一模式指定的值 05/04/64 解析为 1964 后 5 月 4 日。
GMTOffsetTimeZone = GMT Sign Hours : Minutes
对于解析,RFC 822 时区也是可以接受的。
RFC822TimeZone = Sign TwoDigitHours : Minutes
TwoDigitHours 必须是从 00 到 23 的两位数字。其它定义与常规时区类型相同。
对于解析,常规时区也是可以接受的。
下表列示用美国语言环境解释的日期和时间模式的示例。
日期和时间模式 | 结果 |
---|---|
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 |