模板:TimeZone/convert
跳至導覽
跳至搜尋
簡介
這個模板會根據指定的日期和時區,換算出新時區下的日期,並按指定的格式輸出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個格式化參數:
示例時間:2024年10月31日 (星期四) 凌晨 03:54:49
格式化參數 | 說明 | 示例輸出
|
---|---|---|
%(y) | 不包含紀元的年份。如果不包含紀元的年份小於10,則顯示不具有前導零的年份。 | 24 |
%y | 不包含紀元的年份。如果不包含紀元的年份小於10,則顯示不具有前導零的年份。%(y) 的簡略寫法。 |
24 |
%(yy) | 不包含紀元的年份。如果不包含紀元的年份小於10,則顯示具有前導零的年份。 | 24 |
%(yyyy) | 包括紀元的四位數的年份。 | 2024 |
%(gg) | 時期或紀元。如果要設置格式的日期不具有關聯的時期或紀元字符串,則忽略該模式。 | 20 |
%(M) | 月份數字。一位數的月份沒有前導零。 | 10 |
%M | 月份數字。一位數的月份沒有前導零。%(M) 的簡略寫法。 |
10 |
%(MM) | 月份數字。一位數的月份有一個前導零。 | 10 |
%(MMM) | 月份的縮寫名稱。 | 十 |
%(MMMM) | 月份的縮寫名稱。 | 十月 |
%(D) | 年中的某一天。 | 303 |
%D | 年中的某一天。%(D) 的簡略寫法。 |
303 |
%(DD) | 這一年共有多少天。 | 366 |
%(d) | 月中的某一天。一位數的日期沒有前導零。 | 31 |
%d | 月中的某一天。一位數的日期沒有前導零。%(d) 的簡略寫法。 |
31 |
%(dd) | 月中的某一天。一位數的日期有一個前導零。 | 31 |
%(w) | 周中的某一天。 | 5 |
%w | 周中的某一天。%(w) 的簡略寫法。 |
5 |
%(ww) | 周中某天的縮寫名稱。 | 四 |
%(www) | 周中某天的縮寫名稱。 | 星期四 |
%(h) | 12 小時制的小時。一位數的小時數沒有前導零。 | 3 |
%h | 12 小時制的小時。一位數的小時數沒有前導零。%(h) 的簡略寫法。 |
3 |
%(hh) | 12 小時制的小時。一位數的小時數有一個前導零。 | 03 |
%(H) | 24 小時制的小時。一位數的小時數沒有前導零。 | 3 |
%H | 24 小時制的小時。一位數的小時數沒有前導零。%(H) 的簡略寫法。 |
3 |
%(HH) | 24 小時制的小時。一位數的小時數有一個前導零。 | 03 |
%(m) | 分鐘。一位數的分鐘數沒有前導零。 | 54 |
%m | 分鐘。一位數的分鐘數沒有前導零。%(m) 的簡略寫法。 |
54 |
%(mm) | 分鐘。一位數的分鐘數有一個前導零。 | 54 |
%(s) | 秒。一位數的秒數沒有前導零。 | 49 |
%s | 秒。一位數的秒數沒有前導零。%(s) 的簡略寫法。 |
49 |
%(ss) | 秒。一位數的秒數有一個前導零。 | 49 |
%(sss) | Unix時間戳(Unix timestamp)。從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。 | 1730372089 |
%(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}}
效果
除非特別註明,本頁面所有時間皆以東八區時間(UTC+08:00)為準。
現在是北京時間2024年10月31日 03時54分49秒。
當北京時間2018年12月15日 00時00分00秒(UTC+8)時,太平洋時間為2024年12月14日 11時00分00秒(UTC-8)
- 全球各時區時間:
- 主頁面:Template:TimeZone/convert/doc/全球各時區時間
高級用法
這個模板與{{TimeZone}}配合使用可以自動轉換頁面上的所有非特別註明的時間。
案例
- [[少女歌劇 Revue Starlight/1st STAR LIVE -Starry Sky-]]
- [[少女歌劇 Revue Starlight/2nd STAR LIVE -Starry Desert-]]
|