标准日期和时间格式字符串
标准日期和时间格式字符串
格式说明符表
部分格式会受到语种和国家地区影响。
假定x
为DateTimeZone.From("2022-09-05T18:03:56.66666-08:00")
。
下表示例使用(格式, 区域)=DateTimeZone.ToText(x, 格式, 区域)
。
格式说明符 | 说明 | 示例 |
---|---|---|
d | 短日期 | ("d", "") = 09/05/2022 ("d", "zh-CN") = 2022/9/5 ("d", "en-US") = 9/5/2022 ("d", "de-DE") = 05.09.2022 |
D | 长日期 | ("D", "") = Monday, 05 September 2022 ("D", "zh-CN") = 2022年9月5日 ("D", "en-US") = Monday, September 5, 2022 |
f | 完整日期时间 短时间 | ("f", "") = Monday, 05 September 2022 18:03 ("f", "zh-CN") = 2022年9月5日 18:03 ("f", "en-US") = Monday, September 5, 2022 6:03 PM |
F | 完整日期时间 长时间 | ("F", "") = Monday, 05 September 2022 18:03:56 ("F", "zh-CN") = 2022年9月5日 18:03:56 ("F", "en-US") = Monday, September 5, 2022 6:03:56 PM |
g | 常规日期时间 短时间 | ("g", "") = 09/05/2022 18:03 ("g", "zh-CN") = 2022/9/5 18:03 ("g", "en-US") = 9/5/2022 6:03 PM |
G | 常规日期时间 长时间 | ("G", "") = 2022/9/5 18:03:56 ("G", "zh-CN") = 2022/9/5 18:03:56 ("G", "en-US") = 9/5/2022 6:03:56 PM |
M 、m | 月日 | ("M", "") = September 05 ("m", "zh-CN") = 9月5日 ("m", "en-US") = September 5 |
O 、o | 往返日期时间 区域不会影响结果 | ("o", "") = 2022-09-05T18:03:56.6666600-08:00 ("o", "zh-CN") ("o", "en-US") |
R 、r | ("r", "") = Tue, 06 Sep 2022 02:03:56 GMT ("r", "zh-CN") ("r", "zh-CN") | |
s | 可排序日期时间 | ("s", "") = 2022-09-05T18:03:56 ("s", "zh-CN") ("s", "en-US") |
t | 短时间 | ("t", "") = 18:03 ("t", "zh-CN") = 18:03 ("t", "en-US") = 6:03 PM |
T | 长时间 | ("T", "") = 18:03:56 ("T", "zh-CN") = 18:03:56 ("T", "en-US") = 6:03:56 PM |
u | 通用可排序日期时间 | ("u", "") = 2022-09-06 02:03:56ZZ ("u", "zh-CN") ("u", "en-US") |
U | 通用完整日期时间 不能给DateTimeZone.ToText使用 | ("U", "") = Monday, 05 September 2022 10:03:56 ("U", "zh-CN") = 2022年9月5日 10:03:56 ("U", "en-US") = Monday, September 5, 2022 10:03:56 AM |
Y 、y | 年月 | ("y", "") = 2022 September ("y", "zh-CN") = 2022年9月 ("Y", "en-US") = September 2022 |
其它 | 其它符号 | 错误 |
标准格式字符串的工作原理
在格式设置操作中,标准格式字符串只是自定义格式字符串的别名。使用别名引用自定义格式字符串的优点是:尽管别名保持不变,自定义格式字符串自身也可以变化(即可以根据不同地区设置不同格式)。例如:d
标准格式字符串指示应使用短日期模式显示日期和时间值。对于固定区域,此模式为MM/dd/yyyy
,对于fr-FR
使用dd/MM/yyyy
,对于ja-JP
使用yyyy/MM/dd
。
相关信息
固定区域:对culture
参数传入""
,该方式会将语言关联到英文,但不会关联任何国家或地区。
某些情况下,标准格式字符串用作固定不变的自定义格式字符串的简便缩写。有四种标准格式字符串属于这一类别:O
或o
、R
或r
、s
和u
。这四种标准格式字符串使用固定区域定义的自定义格式字符串,这也意味着,不管是什么区域,它们总会获得相同的结果。
标准格式字符串 | 定义者 | 自定义格式字符串 |
---|---|---|
O 、o | yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK | |
R 、r | IETF RFC 1123规范 | ddd, dd MMM yyyy HH':'mm':'ss 'GMT' |
s | ISO 8601 | yyyy'-'MM'-'dd'T'HH':'mm':'ss |
u | 可排序 | yyyy'-'MM'-'dd HH':'mm':'ss'Z' |
日期格式
短日期(d)格式说明符
固定区域使用MM/dd/yyyy
。
结果受区域影响。
长日期(D)格式说明符
固定区域使用dddd, dd MMMM yyyy
。
结果受区域影响。
日期和时间格式
完整日期短时间(f)格式说明符
标准格式说明符f
是长日期D
和短时间t
的组合,并使用空格分隔。
结果受区域影响。
完整日期长时间(F)格式说明符
固定区域使用dddd, dd MMMM yyyy HH:mm:ss
。
结果受区域影响。
常规日期短时间(g)格式说明符
标准格式说明符g
是短日期d
和短时间t
的组合,并使用空格分隔。
结果受区域影响。
常规日期长时间(G)格式说明符
标准格式说明符G
是短日期d
和长时间T
的组合,并使用空格分隔。
结果受区域影响。
往返(O、o)格式说明符
标准格式说明符是使用保留时区信息的自定义日期和时间格式字符串,并符合ISO8601的结果字符串。对于DateTimeZone类型的值,此格式说明符旨在保留文本中的日期、时间和时区值。
往返说明符对应于yyyy-MM-ddTHH:mm:ss:fffffffK
的自定义格式字符串。
//2022-09-05T18:03:56.6666600-08:00
DateTimeZone.ToText(DateTimeZone.From("2022-09-05T18:03:56.66666-08:00"), "o")
DateTimeZone.ToText(DateTimeZone.From("2022-09-05T18:03:56.66666-08:00"), "O")
DateTimeZone.ToText(DateTimeZone.From("2022-09-05T18:03:56.66666-08:00"), "yyyy-MM-ddTHH:mm:ss:fffffffK")
RFC1123(R、r)格式说明符
标准格式说明符R
使用自定义格式字符串ddd, dd MMM yyyy HH:mm:ss 'GMT'
。
该模式会将日期调整到协调世界时(UTC+0)。
DateTimeZone.ToUtc
也会将值调整到协调世界时。
区域设置不会影响结果。
会考虑时区。
//Tue, 06 Sep 2022 02:03:56 GMT
DateTimeZone.ToText(DateTimeZone.From("2022-09-05T18:03:56.66666-08:00"), "R")
DateTimeZone.ToText(
DateTimeZone.ToUtc(DateTimeZone.From("2022-09-05T18:03:56.66666-08:00")),
"R"
)
可排序(s)格式说明符
标准格式说明符s
根据ISO8601标准定义,它使用自定义格式字符串yyyy-MM-dd'T'HH:mm:ss
来计算结果。
区域设置不会影响结果。
不会考虑时区。
通用可排序(u)格式说明符
标准格式说明符u
使用自定义格式字符串yyyy-MM-dd HH:mm:ss'Z'
。
DateTimeZone.ToUtc
也会将值调整到协调世界时。
区域设置不会影响结果。
会考虑时区。
//2022-09-06 02:03:56Z
DateTimeZone.ToText(DateTimeZone.From("2022-09-05T18:03:56.66666-08:00"), "u")
DateTimeZone.ToText(
DateTimeZone.ToUtc(DateTimeZone.From("2022-09-05T18:03:56.66666-08:00")),
"u"
)
通用完整日期时间(U)格式说明符
该模式不支持datetimezone
类型的值,即不能在DateTimeZone.ToText
函数中使用。
区域设置会影响结果。
会考虑时区。
:::color3
格式说明符U
并不是官方文档中,因此不推荐使用。
问题:该说明符似乎不受参数控制,仅读取本机或软件环境的设置。
:::
//Monday, 05 September 2022 10:03:56
DateTime.ToText(DateTime.From("2022-09-05T18:03:56.66666"), "U", "")
//2022年9月5日 10:03:56
DateTime.ToText(DateTime.From("2022-09-05T18:03:56.66666"), "U", "zh-CN")
时间格式
短时间(t)格式说明符
固定区域使用HH:mm
。
结果受区域影响。
长时间(T)格式说明符
固定区域使用HH:mm:ss
。
结果受区域影响。
部分日期格式
月(M、m)格式说明符
固定区域使用MMMM dd
。
结果受区域影响。
年月(Y、y)格式说明符
固定区域使用yyyy MMMM
。
结果受区域影响。