日期时间转换功能 - Amazon Kinesis Data Analytics
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

日期时间转换功能

您可使用模式化字母指定日期和时间格式。日期和时间模式字符串使用从“A”到“Z”和从“a”到“z”的不带引号的字母,每个字母表示一个格式化元素。

有关更多信息,请参阅 Oracle 网站上的 SimpleDateFormat 类

注意

如果包含了其他字符,则它们在格式化期间将会并入到输出字符串中或在解析期间与输入字符串进行比较。

定义了下表中的模式字母 (将保留从“A”到“Z”和从“a”到“z”的所有其他字符)。

字母 日期或时间部分 表示形式 示例

y

年份

年份

yyyy; yy 2018;18

年份

年份

YYYY; YY 2009; 09

M

一年中的月

MMM;MM;MM July; Jul; 07

w

一年中的周

数字

ww; 27

W

一个月中的周

数字

W 2

D

一年中的日

数字

DDD 321

d

一个月中的日

数字

dd 10

F

一个月中的周中的日

数字

F2

E

星期名称

文本

Tuesday; Tue

u

星期的编号 (1 = 星期一、...、7 = 星期日)

数字

1

a

上午/下午标记

文本

PM

H

一天中的小时 (0-23)

数字

0

k

一天中的小时 (1-24)

数字

24

K

am/pm 中的小时 (0-11)

数字

0

h

am/pm 中的小时 (1-12)

数字

12

m

一小时中的分钟

数字

30

s

一分钟中的秒

数字

55

S

毫秒

数字

978

z

时区

一般时区

Pacific Standard Time; PST; 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”将会解析为公元 12 年 1 月 11 日。

对于采用缩写年份模式 (“y”或“yy”) 的解析,SimpleDateFormat 必须相对于某个世纪来解释缩写年份。它通过将日期调整为在创建 SimpleDateFormat 实例的 80 年前和 20 年内后之间的时间内来达到此目的。例如,如果使用了“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”解析为公元 3 年 1 月 2 日。同样,“01/02/-3”将会解析为公元前 4 前 1 月 2 日。

否则,将应用特定于日历系统的形式。对于格式化和解析,如果模式字母的数量为 4 或更多,则使用特定于日历的长形式。否则,使用特定于日历的短形式或缩写形式。