模板:TimeZone/convert/doc
< 模板:TimeZone | convert
| 本页面之全部或部分原来自萌娘百科的模板:TimeZone/convert/doc,依 CC BY-NC-SA 3.0 CN 授权引入;原贡献者可以在这里看到。 |
简介
这个模板会根据指定的日期和时区,换算出新时区下的日期,并按指定的格式输出wiki文本。
虽然没有硬性规定,但是建议在使用这个模板的页面的序章中添加{{TimeZone}}。
参数
- 使用格式:
参数全称
{{TimeZone/convert
| year = <!-- 年 -->
| mon = <!-- 月 -->
| day = <!-- 日 -->
| hour = <!-- 时 -->
| min = <!-- 分 -->
| sec = <!-- 秒 -->
|o_timezone = <!-- 原来的时区 -->
|c_timezone = <!-- 现在的时区 -->
|<!-- 格式化字符串 -->
}}
参数简写
{{TimeZone/convert | y = <!-- 年 --> | m = <!-- 月 --> | d = <!-- 日 --> | h = <!-- 时 --> | i = <!-- 分 --> | s = <!-- 秒 --> |o_tz = <!-- 原来的时区 --> |c_tz = <!-- 现在的时区 --> |<!-- 格式化字符串 --> }}
year、y:原时区下的年份,默认值为在原时区下当前时间的年份。mon、m:原时区下的月份,默认值为在原时区下当前时间的月份。day、d:原时区下的日期,默认值为在原时区下当前时间的日期。hour、h:原时区下的小时数,默认值为在原时区下当前时间的小时数。min、i:原时区下的分钟数,默认值为在原时区下当前时间的分钟数。sec、s:原时区下的秒数,默认值为在原时区下当前时间的秒数。o_timezone、o_tz:原来的时区,默认值为用户当前所在的时区。c_timezone、c_tz:现在的时区,默认值为用户当前所在的时区。{{{1}}}:第一个匿名参数,指示如何格式化新日期。
原理
了解模板的实现原理有助于对模板的理解和运用。 以下说明了模板的实现以及工作原理:
- 在条目序言中添加{{TimeZone}},将会定义一个全局变量
{{#var:timezone}}。{{#var:timezone}}的值为使用{{TimeZone}}时指定的时间参数,若并未指定时间参数,则使用[[模块:TimeZone]]计算得到的用户当前时区。
- 计算原来的时区和现在的时区
- 计算
o_timezone、o_tz:- 若两个参数的值均为空,则使用[[模块:TimeZone]]计算得到的用户当前时区。
- 计算
c_timezone、c_tz:- 若两个参数的值均为空,则使用
{{#var:timezone}}的值; - 若
{{#var:timezone}}的值为空(【不建议】当未添加{{TimeZone}}的情况下),则使用[[模块:TimeZone]]计算得到的用户当前时区。
- 若两个参数的值均为空,则使用
- 计算
- 依次计算:
year、y:若两个参数的值均为空,则使用在原时区下当前时间的年份。mon、m:若两个参数的值均为空,则使用在原时区下当前时间的月份。day、d:若两个参数的值均为空,则使用在原时区下当前时间的日期。hour、h:若两个参数的值均为空,则使用在原时区下当前时间的小时数。min、i:若两个参数的值均为空,则使用在原时区下当前时间的分钟数。sec、s:若两个参数的值均为空,则使用在原时区下当前时间的秒数。
- 汇总所有参数,使用[[模块:TimeZone]]计算新日期,并根据
{{{1}}}格式化新日期。- 所有格式化参数详见#格式化参数章节
- 返回结果。
格式化参数
目前{{TimeZone/convert}}共支持42个格式化参数:
示例时间:2025年12月06日 (星期六) 下午 14:43:57
| 格式化参数 | 说明 | 示例输出
|
|---|---|---|
| %(y) | 不包含纪元的年份。如果不包含纪元的年份小于10,则显示不具有前导零的年份。 | 25 |
| %y | 不包含纪元的年份。如果不包含纪元的年份小于10,则显示不具有前导零的年份。%(y)的简略写法。 |
25 |
| %(yy) | 不包含纪元的年份。如果不包含纪元的年份小于10,则显示具有前导零的年份。 | 25 |
| %(yyyy) | 包括纪元的四位数的年份。 | 2025 |
| %(gg) | 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。 | 20 |
| %(M) | 月份数字。一位数的月份没有前导零。 | 12 |
| %M | 月份数字。一位数的月份没有前导零。%(M)的简略写法。 |
12 |
| %(MM) | 月份数字。一位数的月份有一个前导零。 | 12 |
| %(MMM) | 月份的缩写名称。 | 十二 |
| %(MMMM) | 月份的缩写名称。 | 十二月 |
| %(D) | 年中的某一天。 | 339 |
| %D | 年中的某一天。%(D)的简略写法。 |
339 |
| %(DD) | 这一年共有多少天。 | 365 |
| %(d) | 月中的某一天。一位数的日期没有前导零。 | 6 |
| %d | 月中的某一天。一位数的日期没有前导零。%(d)的简略写法。 |
6 |
| %(dd) | 月中的某一天。一位数的日期有一个前导零。 | 06 |
| %(w) | 周中的某一天。 | 7 |
| %w | 周中的某一天。%(w)的简略写法。 |
7 |
| %(ww) | 周中某天的缩写名称。 | 六 |
| %(www) | 周中某天的缩写名称。 | 星期六 |
| %(h) | 12 小时制的小时。一位数的小时数没有前导零。 | 2 |
| %h | 12 小时制的小时。一位数的小时数没有前导零。%(h)的简略写法。 |
2 |
| %(hh) | 12 小时制的小时。一位数的小时数有一个前导零。 | 02 |
| %(H) | 24 小时制的小时。一位数的小时数没有前导零。 | 14 |
| %H | 24 小时制的小时。一位数的小时数没有前导零。%(H)的简略写法。 |
14 |
| %(HH) | 24 小时制的小时。一位数的小时数有一个前导零。 | 14 |
| %(m) | 分钟。一位数的分钟数没有前导零。 | 43 |
| %m | 分钟。一位数的分钟数没有前导零。%(m)的简略写法。 |
43 |
| %(mm) | 分钟。一位数的分钟数有一个前导零。 | 43 |
| %(s) | 秒。一位数的秒数没有前导零。 | 57 |
| %s | 秒。一位数的秒数没有前导零。%(s)的简略写法。 |
57 |
| %(ss) | 秒。一位数的秒数有一个前导零。 | 57 |
| %(sss) | Unix时间戳(Unix timestamp)。从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。 | 1765003437 |
| %(t) | 一天中时间段的更加详细的提示信息。 | 下午 |
| %t | 一天中时间段的更加详细的提示信息。%(t)的简略写法。 |
下午 |
| %(tt) | 一天中时间段的更加详细的提示信息。 | 下午 |
| %(z) | 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。 | +8 |
| %z | 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。%(z)的简略写法。 |
+8 |
| %(zz) | 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数有前导零。例如,太平洋标准时间是“-08”。 | +08 |
| %(zzz) | 完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。 | +08:00 |
| %(%) | 表示字符“%”。 | % |
| %% | 表示字符“%”。%(%)的简略写法。 |
% |
用法
- 简单示例:
代码
{{TimeZone|+8}}
现在是北京时间{{TimeZone/convert|%(yyyy)年%(MM)月%(dd)日 %(HH)时%(mm)分%(ss)秒}}。<br/>
当北京时间{{TimeZone/convert|y=2018|m=12|d=15|h=0|i=0|s=0|%(yyyy)年%(MM)月%(dd)日 %(HH)时%(mm)分%(ss)秒(UTC+8)}}时,太平洋时间为{{TimeZone/convert|Y=2018|m=12|d=15|H=0|i=0|s=0|%(yyyy)年%(MM)月%(dd)日 %(HH)时%(mm)分%(ss)秒(UTC-8)|c_tz=-8}}
- 全球各时区时间:
- 主页面:Template:TimeZone/convert/doc/全球各时区时间
高级用法
这个模板与{{TimeZone}}配合使用可以自动转换页面上的所有非特别注明的时间。
案例
- [[少女歌剧 Revue Starlight/1st STAR LIVE -Starry Sky-]]
- [[少女歌剧 Revue Starlight/2nd STAR LIVE -Starry Desert-]]
| ||||||||||||||