自定义日期和时间格式字符串
自定义日期和时间格式字符串
部分格式会受到语种和国家地区影响。
假定x为DateTimeZone.From("2022-09-05T18:03:56.123450-08:00")。
下表示例使用(格式, 区域)=DateTimeZone.ToText(x, 格式, 区域)。
%需组合列含义:
- 是:单独使用时需在前面添加
% - 可能:视情况考虑是否添加
%,通常都是一个或若干个重复字符才会如此。如%f和ff。 - 空白:可单独使用且不需要添加
%。
| 格式说明符 | 需组合 | 说明 | 示例 |
|---|---|---|---|
d | 是 | 日 | ("%d", "en-US") = 5 |
dd | 两位日 | ("dd", "en-US") = 05 | |
ddd | 星期几简称 | ("ddd", "zh-CN") = 周一("ddd", "en-US") = Mon | |
dddd | 星期几全称 | ("dddd", "zh-CN") = 星期一("dddd", "en-US") = Monday | |
f | 可能 | 更小的秒,个数表示位数 精确保证位数,可能补0 可以最多7个 f组合f不可与F混用 | ("%f", "en-US") = 1("s.ff", "en-US") = 56.12("s.ffffff", "en-US") = 56.123450("FFFfff", "en-US") = 123123 |
F | 可能 | 更小的秒,个数表示位数 最大位数为源数据位数 可以最多7个 F组合f不可与F混用 | ("%F", "en-US") = 1("FF", "en-US") = 12("s.FFFFFF", "en-US") = 56.12345("FFFfff", "en-US") = 123123 |
g、gg | 可能 | 时期或时代 | ("%g", "zh-CN") = 公元("gyyyy", "zh-CN") = 公元2022("gyyyy", "en-US") = A.D.2022 |
h | 是 | 时 12小时制(1-12) | ("%h", "zh-CN") = 6("h:m", "en-US") = 6:3 |
hh | 两位时 12小时制(1-12) | ("hh", "zh-CN") = 06("hh", "en-US") = 06 | |
H | 是 | 时 24小时制(0-23) | ("%H", "zh-CN") = 18("H:m", "en-US") = 18:3 |
HH | 两位时 24小时制(0-23) | ("HH", "zh-CN") = 18("HH", "en-US") = 18 | |
K | 是 | 时区信息 | ("%K", "zh-CN") = -08:00 |
m | 是 | 分钟 | ("%m", "zh-CN") = 3 |
mm | 两位分钟 | ("mm", "zh-CN") = 03("h:mm", "zh-CN") = 6:03 | |
M | 是 | 月 | ("%M", "zh-CN") = 9("M-d", "en-US") = 9-5 |
MM | 两位月 | ("MM", "en-US") = 09 | |
MMM | 月份简称 | ("MMM", "zh-CN") = 9月("MMM", "en-US") = Sep | |
MMMM | 月份全称 | ("MMMM", "zh-CN") = 九月("MMMM", "en-US") = September | |
s | 是 | 秒 | ("%s", "zh-CN") = 56 |
ss | 两位秒 | ("ss", "zh-CN") = 56 | |
t | 是 | 上午/下午的第一个字符 会因为语言不同而不同 | ("HH t", "zh-CN") = 18 下("HH t", "en-US") = 18 P("HH t", "ja-JP") = 18 午 |
tt | 上午/下午 会因为语言不同而不同 | ("HH tt", "zh-CN") = 18 下午("HH tt", "en-US") = 18 PM("HH tt", "ja-JP") = 18 午後 | |
y | 是 | 年份(0-99) | ("%y", "zh-CN") = 22 |
yy | 年份(00-99) | ("yy", "zh-CN") = 22 | |
yyy | 年份(000-9999) 最低3位 | ("yyy", "zh-CN") = 2022 | |
yyyy | 年份(0000-9999) | ("yyyy", "zh-CN") = 2022 | |
yyyy | 年份(00000-99999) | ("yyyy", "zh-CN") = 02022 | |
z | 是 | 时区 仅小时,不含分钟 | ("%z", "zh-CN") = -8 |
zz | 时区 两位小时,不含分钟 | ("zz", "zh-CN") = -08 | |
zzz | 时区 含时分 | ("zzz", "zh-CN") = -08:00 | |
: | 是 | 时间分隔符 不一定非要分隔时分秒 | ("mm:ss") = 03:56("yyyy:MM") = 2022:09 |
/ | 是 | 日期分隔符 不一定非要分隔年月日 | ("mm/ss") = 03/56("yyyy/MM") = 2022/09 |
""、'' | 字面文本分隔符 保持引号之间的内容不变 | ("yyyy'K'") = 2022K("yyyy""K""") = 2022K | |
% | 指示之后的字符是自定义格式说明符%之后的一个字符和其他字符会分开解析 | ("%d") = 5("d") = 2022/9/5("%MM") = 99 | |
\ | 转义符 | ("yyyy\K") = 2022K("yyyy\MM") = 2022M9("yyyy\M\M") = 2022MM | |
| 其它 | 其他字符保持原样 | ("今天是MM/dd") = 今天是09/05("today is MM/dd") = 下o5a22 i56 09/05 |
日期(d)格式说明符
返回日期中日的1-31之间的数字文本。单独使用时需要在前面添加%。
日期(dd)格式说明符
返回日期中日的01-31之间的数字文本。结果始终为两位数字,不足两位的会在前面添加0。
日期(ddd)格式说明符
返回周几的缩写。
结果受区域设置影响。
日期(dddd)格式说明符
返回周几的全称。
结果受区域设置影响。
分数秒(f)格式说明符
单独使用f时需要在前面添加%,另外最多可以连续使用7个f。每个f对应分数秒中秒数。比如fff可以得到18:03:56.123456的123。
虽然单独使用若干f和F意思是一样的,但不可混用,混用时一旦切换大小写会被重新计数。比如:ffFF可以得到18:03:56.123456的1212。
分数秒(F)格式说明符
同f,但不可与f混用。
纪元(g)格式说明符
单独使用g时需要在前面添加%。g表示纪元,实际上也可以使用任意个g,它们和使用一个g意义相同,即%g和ggggggg是等效的。但通常为了简洁最多只会使用gg。
小时(h)格式说明符
返回时间中小时的1-12的数字文本,即采用12小时制。
小时(hh)格式说明符
返回时间中小时的01-12的数字文本,结果保证是两位数字,如果不足两位则在前面补0。
小时(H)格式说明符
返回时间中小时的0-23的数字文本,即采用24小时制。
小时(HH)格式说明符
返回时间中小时的00-23的数字文本,结果保证是两位数字,如果不足两位则在前面补0。
时区(K)格式说明符
返回时区信息,单独使用时应在前面加%,它应在DateTimeZone.ToText函数中使用。结果字符串定义为:
- 本地环境中生成本地时区信息,但在Power Query Online中会得到
+00:00。 - 如果不含时区信息,如
datetime类型的值,结果为null。
提示
Power Query Online运行在虚拟环境中,时区被设置为+00:00。
分钟(m)格式说明符
返回时间中分钟的0-59数字文本,单独使用时需要在前面添加%。
分钟(mm)格式说明符
返回时间中分钟的00-59数字文本,结果保证有两位数字,不足两位的会在前面添加0。
月份(M)格式说明符
返回日期中月份的1-12的数字文本(对于有13个月的日历返回1-13),单独使用时需要在前面添加%。
月份(MM)格式说明符
返回日期中月份的01-12的数字文本(对于有13个月的日历返回01-13),结果保证有两位数字,不足两位的会在前面添加0。
月份(MMM)格式说明符
返回月份的缩写。
结果受区域设置影响。
月份(MMMM)格式说明符
返回月份的全称。
结果受区域设置影响。
秒(s)格式说明符
返回时间中秒的0-59数字文本,单独使用时需要在前面添加%。
秒(ss)格式说明符
返回时间中秒的00-59数字文本,结果保证有两位数字,不足两位的会在前面添加0。
正午(t)格式说明符
返回上午或下午(受区域设置影响会不同)的缩写,单独使用时需要在前面添加%。
结果受区域设置影响。
正午(tt)格式说明符
返回上午或下午(受区域设置影响会不同)的全称。
结果受区域设置影响。
年份(y)格式说明符
返回年份0-99的数字文本,单独使用时需要在前面添加%。
- 1-9年,返回1-9。
- 10-9999年,返回末尾两位的最简单形式0-99。例如2000年末尾是00,即0。
年份(yy)格式说明符
返回年份末尾的最后两位00-99,结果保证有两位数字,不足两位的会在前面添加0。
年份(yyy)格式说明符
返回年份,结果保证至少有三位数字,不足三位的会在前面添加0,超过3位的保持原样。
年份(yyyy)格式说明符
返回年份,结果保证至少有四位数字,不足四位的会在前面添加0,超过4位的保持原样。
提示
虽然公历最多到9999年,但部分地区的表示方法可以超过该值(如泰国佛历),但也只是输出结果可以如此表示,对于日期值或日期部分会始终使用公历。
年份(yyyyy)格式说明符
返回年份,结果保证至少有五位数字,不足五位的会在前面添加0,超过5位的保持原样。
偏移量(z)格式说明符
返回时区信息中的小时,结果包含符号,范围为-14-+14(数字的最简单形式,不会加0),单独使用时需要在前面添加%。
该说明符仅可用于DateTimeZone.ToText函数中。
提示
该模式会忽略时区的分钟信息。
Power Query Online运行在虚拟环境中,时区被设置为+00:00。
偏移量(zz)格式说明符
返回时区信息中的小时,返回时区信息中的两位小时数,结果包含符号,范围为-14-+14,不足两位的会在数字前加0。
该说明符仅可用于DateTimeZone.ToText函数中。
提示
该模式会忽略时区的分钟信息。
Power Query Online运行在虚拟环境中,时区被设置为+00:00。
偏移量(zzz)格式说明符
返回时区信息的小时和分钟,结果中的小时和分钟一定是两位的,范围为-14:00-+14:00,不足两位的会在数字前加0。
该说明符仅可用于DateTimeZone.ToText函数中。
提示
Power Query Online运行在虚拟环境中,时区被设置为+00:00。
分隔(:)说明符
/和:并非很明确的区分一定要用在日期和时间中作为分隔符,但通常为了保持习惯和可读性不会混用。
分隔(/)说明符
/和:并非很明确的区分一定要用在日期和时间中作为分隔符,但通常为了保持习惯和可读性不会混用。
转义
如果要对字符进行转义,可以:
\:对之后的单个字符进行转义,比如\mM只会保持m的原样输出,而M会正常输出月份。"":对双引号之间的字符进行转义,实际使用时需要两个引号,即yyyy""m"",更推荐使用单引号。'':对单引号之间的字符进行转义,如yyyy'm'。