<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Module%3ADate%2Fdoc</id>
	<title>Module:Date/doc - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Module%3ADate%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:Date/doc&amp;action=history"/>
	<updated>2026-06-28T22:50:54Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Module:Date/doc&amp;diff=3336881&amp;oldid=prev</id>
		<title>imported&gt;InstantNull 来自 2023年7月30日 (日) 00:46</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:Date/doc&amp;diff=3336881&amp;oldid=prev"/>
		<updated>2023-07-30T00:46:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{high-use|91898}}&lt;br /&gt;
本模块为其他模块提供日期相关的函数。目前支持[[公历]]和[[儒略曆]]的日期，有效范围从公元前999年至公元9999年。使用的日期都应当是[[前公历|公历前推的]]，也就是说所有的时间都是唯一且确定的。&lt;br /&gt;
&lt;br /&gt;
日期，包含可选的时间，可以用多种格式指定，并且可以通过多种格式进行显示转换，例如：1 April 2016 或 April 1, 2016。一个日期的属性包括它的儒略日期和公历序列日期，以及星期几和一年中的第几天。&lt;br /&gt;
&lt;br /&gt;
日期是可比的（例如，&amp;lt;code&amp;gt;date1 &amp;lt;= date2&amp;lt;/code&amp;gt;），并且可以相加或相减（例如，&amp;lt;code&amp;gt;date + &amp;#039;3 months&amp;#039;&amp;lt;/code&amp;gt;）。两个日期之间的差异可以通过 &amp;lt;code&amp;gt;date1 - date2&amp;lt;/code&amp;gt; 来确定。这些操作适用于公历和儒略历日期，但如果两个日期混用不同的历法，&amp;lt;code&amp;gt;date1 - date2&amp;lt;/code&amp;gt; 将为空。&lt;br /&gt;
&lt;br /&gt;
该模块提供以下内容：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 模块导出 !! 描述&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_current&amp;lt;/code&amp;gt;       || 包含当前年月日时分秒的表（table）&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_Date&amp;lt;/code&amp;gt;          || 返回包含指定日期的表（table）的函数&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_days_in_month&amp;lt;/code&amp;gt; || 返回某个月的天数的函数&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 格式化输出 ==&lt;br /&gt;
日期可以以文字形式输出：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local Date = require(&amp;#039;Module:Date&amp;#039;)._Date&lt;br /&gt;
local text = Date(2016, 7, 1):text()          -- 输出 &amp;#039;1 July 2016&amp;#039;&lt;br /&gt;
local text = Date(2016, 7, 1):text(&amp;#039;%-d %B&amp;#039;)  -- 输出 &amp;#039;1 July&amp;#039;&lt;br /&gt;
local text = Date(&amp;#039;1 July 2016&amp;#039;):text(&amp;#039;mdy&amp;#039;)  -- 输出 &amp;#039;July 1, 2016&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
模块提供了下列格式代码简写：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 代码 !! 结果&lt;br /&gt;
|-&lt;br /&gt;
| hm  || hour:minute, 包含&amp;quot;am&amp;quot;或&amp;quot;pm&amp;quot; or variant, if specified (14:30 or 2:30&amp;amp;nbsp;pm or variant)&lt;br /&gt;
|-&lt;br /&gt;
| hms || hour:minute:second (14:30:45)&lt;br /&gt;
|-&lt;br /&gt;
| ymd || year-month-day (2016-07-01)&lt;br /&gt;
|-&lt;br /&gt;
| mdy || month day, year (July 1, 2016)&lt;br /&gt;
|-&lt;br /&gt;
| dmy || day month year (1 July 2016)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
以下格式化代码（类似于C语言的 [[time.h#时间日期数据的格式化函数|strftime]]）可用于格式化输出日期：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 代码 !! 结果&lt;br /&gt;
|-&lt;br /&gt;
| %a  || Day abbreviation: Mon, Tue, ...&lt;br /&gt;
|-&lt;br /&gt;
| %A  || Day name: Monday, Tuesday, ...&lt;br /&gt;
|-&lt;br /&gt;
| %u  || Day of week: 1 to 7 (Monday to Sunday)&lt;br /&gt;
|-&lt;br /&gt;
| %w  || Day of week: 0 to 6 (Sunday to Saturday)&lt;br /&gt;
|-&lt;br /&gt;
| %d  || Day of month zero-padded: 01 to 31&lt;br /&gt;
|-&lt;br /&gt;
| %b  || Month abbreviation: Jan to Dec&lt;br /&gt;
|-&lt;br /&gt;
| %B  || Month name: January to December&lt;br /&gt;
|-&lt;br /&gt;
| %m  || Month zero-padded: 01 to 12&lt;br /&gt;
|-&lt;br /&gt;
| %Y  || Year zero-padded: 0012, 0120, 1200&lt;br /&gt;
|-&lt;br /&gt;
| %H  || Hour 24-hour clock zero-padded: 00 to 23&lt;br /&gt;
|-&lt;br /&gt;
| %I  || Hour 12-hour clock zero-padded: 01 to 12&lt;br /&gt;
|-&lt;br /&gt;
| %p  || AM or PM or as in options&lt;br /&gt;
|-&lt;br /&gt;
| %M  || Minute zero-padded: 00 to 59&lt;br /&gt;
|-&lt;br /&gt;
| %S  || Second zero-padded: 00 to 59&lt;br /&gt;
|-&lt;br /&gt;
| %j  || Day of year zero-padded: 001 to 366&lt;br /&gt;
|-&lt;br /&gt;
| %-d || Day of month: 1 to 31&lt;br /&gt;
|-&lt;br /&gt;
| %-m || Month: 1 to 12&lt;br /&gt;
|-&lt;br /&gt;
| %-Y || Year: 12, 120, 1200&lt;br /&gt;
|-&lt;br /&gt;
| %-H || Hour: 0 to 23&lt;br /&gt;
|-&lt;br /&gt;
| %-M || Minute: 0 to 59&lt;br /&gt;
|-&lt;br /&gt;
| %-S || Second: 0 to 59&lt;br /&gt;
|-&lt;br /&gt;
| %-j || Day of year: 1 to 366&lt;br /&gt;
|-&lt;br /&gt;
| %-I || Hour: 1 to 12&lt;br /&gt;
|-&lt;br /&gt;
| %%  || %&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
此外，可以使用&amp;lt;code&amp;gt;%{&amp;#039;&amp;#039;property&amp;#039;&amp;#039;}&amp;lt;/code&amp;gt;（其中 &amp;lt;code&amp;gt;&amp;#039;&amp;#039;property&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; 是日期的任何属性）来进行格式化。&lt;br /&gt;
&lt;br /&gt;
例如，&amp;lt;code&amp;gt;Date(&amp;#039;1 Feb 2015 14:30:45 A.D.&amp;#039;)&amp;lt;/code&amp;gt; 具有以下属性：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 代码 !! 结果&lt;br /&gt;
|-&lt;br /&gt;
| %{calendar}     || Gregorian&lt;br /&gt;
|-&lt;br /&gt;
| %{year}         || 2015&lt;br /&gt;
|-&lt;br /&gt;
| %{month}        || 2&lt;br /&gt;
|-&lt;br /&gt;
| %{day}          || 1&lt;br /&gt;
|-&lt;br /&gt;
| %{hour}         || 14&lt;br /&gt;
|-&lt;br /&gt;
| %{minute}       || 30&lt;br /&gt;
|-&lt;br /&gt;
| %{second}       || 45&lt;br /&gt;
|-&lt;br /&gt;
| %{dayabbr}      || Sun&lt;br /&gt;
|-&lt;br /&gt;
| %{dayname}      || Sunday&lt;br /&gt;
|-&lt;br /&gt;
| %{dayofweek}    || 0&lt;br /&gt;
|-&lt;br /&gt;
| %{dow}          || 0 (same as dayofweek)&lt;br /&gt;
|-&lt;br /&gt;
| %{dayofweekiso} || 7&lt;br /&gt;
|-&lt;br /&gt;
| %{dowiso}       || 7 (same as dayofweekiso)&lt;br /&gt;
|-&lt;br /&gt;
| %{dayofyear}    || 32&lt;br /&gt;
|-&lt;br /&gt;
| %{era}          || A.D.&lt;br /&gt;
|-&lt;br /&gt;
| %{gsd}          || 735630 (numbers of days from 1 January 1 CE; the first is day 1)&lt;br /&gt;
|-&lt;br /&gt;
| %{juliandate}   || 2457055.1046875 ([[Julian day]])&lt;br /&gt;
|-&lt;br /&gt;
| %{jd}           || 2457055.1046875 (same as juliandate)&lt;br /&gt;
|-&lt;br /&gt;
| %{isleapyear}   || false&lt;br /&gt;
|-&lt;br /&gt;
| %{monthdays}    || 28&lt;br /&gt;
|-&lt;br /&gt;
| %{monthabbr}    || Feb&lt;br /&gt;
|-&lt;br /&gt;
| %{monthname}    || February&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
一些快捷方式也是可用的。给定 &amp;lt;code&amp;gt;date = Date(&amp;#039;1 Feb 2015 14:30&amp;#039;)&amp;lt;/code&amp;gt;，将产生以下结果：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 代码            !! 描述   !! 结果               !! 等同于&lt;br /&gt;
|-&lt;br /&gt;
| date:text(&amp;#039;%c&amp;#039;) || date and time || 2:30&amp;amp;nbsp;pm 1 February 2015 || %-I:%M %p %-d %B %-Y %{era}&lt;br /&gt;
|-&lt;br /&gt;
| date:text(&amp;#039;%x&amp;#039;) || date          || 1 February 2015              || %-d %B %-Y %{era}&lt;br /&gt;
|-&lt;br /&gt;
| date:text(&amp;#039;%X&amp;#039;) || time          || 2:30&amp;amp;nbsp;pm                 || %-I:%M %p&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 儒略日期 ==&lt;br /&gt;
&lt;br /&gt;
下面是一个将儒略日期转换为日期，并获取日期信息的示例：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- 代码                                                -- 结果&lt;br /&gt;
Date = require(&amp;#039;Module:Date&amp;#039;)._Date&lt;br /&gt;
date = Date(&amp;#039;juliandate&amp;#039;, 320)&lt;br /&gt;
number = date.gsd                                      -- -1721105&lt;br /&gt;
number = date.jd                                       -- 320&lt;br /&gt;
text = date.dayname                                    -- Saturday&lt;br /&gt;
text = date:text()                                     -- 9 October 4713&amp;amp;nbsp;BC&lt;br /&gt;
text = date:text(&amp;#039;%Y-%m-%d&amp;#039;)                           -- 4713-10-09&lt;br /&gt;
text = date:text(&amp;#039;%{era} %Y-%m-%d&amp;#039;)                    -- BC 4713-10-09&lt;br /&gt;
text = date:text(&amp;#039;%Y-%m-%d %{era}&amp;#039;)                    -- 4713-10-09&amp;amp;nbsp;BC&lt;br /&gt;
text = date:text(&amp;#039;%Y-%m-%d %{era}&amp;#039;, &amp;#039;era=B.C.E.&amp;#039;)      -- 4713-10-09&amp;amp;nbsp;B.C.E.&lt;br /&gt;
text = date:text(&amp;#039;%Y-%m-%d&amp;#039;, &amp;#039;era=BCNEGATIVE&amp;#039;)         -- -4712-10-09&lt;br /&gt;
text = date:text(&amp;#039;%Y-%m-%d&amp;#039;, &amp;#039;era=BCMINUS&amp;#039;)            -- −4712-10-09 (uses Unicode MINUS SIGN U+2212)&lt;br /&gt;
text = Date(&amp;#039;juliandate&amp;#039;,320):text(&amp;#039;%{gsd} %{jd}&amp;#039;)     -- -1721105 320&lt;br /&gt;
text = Date(&amp;#039;Oct 9, 4713 B.C.E.&amp;#039;):text(&amp;#039;%{gsd} %{jd}&amp;#039;) -- -1721105 320&lt;br /&gt;
text = Date(-4712,10,9):text(&amp;#039;%{gsd} %{jd}&amp;#039;)           -- -1721105 320&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 日期差 ==&lt;br /&gt;
两个日期之间的差值可以通过 &amp;lt;code&amp;gt;date1 - date2&amp;lt;/code&amp;gt; 来确定。如果两个日期都使用公历或儒略历，那么计算的结果是有效的；如果两个日期使用不同的历法，那么计算的结果将为空值。日期差异可以被用于计算年龄和时间间隔。&lt;br /&gt;
&lt;br /&gt;
例子：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- 代码                                      -- 结果&lt;br /&gt;
Date = require(&amp;#039;Module:Date&amp;#039;)._Date&lt;br /&gt;
date1 = Date(&amp;#039;21 Mar 2015&amp;#039;)&lt;br /&gt;
date2 = Date(&amp;#039;4 Dec 1999&amp;#039;)&lt;br /&gt;
diff = date1 - date2&lt;br /&gt;
d = diff.age_days                            -- 5586&lt;br /&gt;
y, m, d = diff.years, diff.months, diff.days -- 15, 3, 17 (15 years + 3 months + 17 days)&lt;br /&gt;
y, m, d = diff:age(&amp;#039;ymd&amp;#039;)                    -- 15, 3, 17&lt;br /&gt;
y, m, w, d = diff:age(&amp;#039;ymwd&amp;#039;)                -- 15, 3, 2, 3 (15 years + 3 months + 2 weeks + 3 days)&lt;br /&gt;
y, m, w, d = diff:duration(&amp;#039;ymwd&amp;#039;)           -- 15, 3, 2, 4&lt;br /&gt;
d = diff:duration(&amp;#039;d&amp;#039;)                       -- 5587 (duration 包含最后一天)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
日期差包含原始的日期，只是它们可能被交换以满足 &amp;lt;code&amp;gt;diff.date1 &amp;gt;= diff.date2&amp;lt;/code&amp;gt; 的条件（其中 &amp;lt;code&amp;gt;diff.date1&amp;lt;/code&amp;gt; 是较靠后的日期）。以下是示例说明：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
date1 = Date(&amp;#039;21 Mar 2015&amp;#039;)&lt;br /&gt;
date2 = Date(&amp;#039;4 Dec 1999&amp;#039;)&lt;br /&gt;
diff = date1 - date2&lt;br /&gt;
neg = diff.isnegative                        -- false&lt;br /&gt;
text = diff.date1:text()                     -- 21 March 2015&lt;br /&gt;
text = diff.date2:text()                     -- 4 December 1999&lt;br /&gt;
diff = date2 - date1&lt;br /&gt;
neg = diff.isnegative                        -- true (日期被交换了)&lt;br /&gt;
text = diff.date1:text()                     -- 21 March 2015&lt;br /&gt;
text = diff.date2:text()                     -- 4 December 1999&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
除了包含日期之间的差，还包含时间之间的差：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
date1 = Date(&amp;#039;8 Mar 2016 0:30:45&amp;#039;)&lt;br /&gt;
date2 = Date(&amp;#039;19 Jan 2014 22:55&amp;#039;)&lt;br /&gt;
diff = date1 - date2&lt;br /&gt;
y, m, d = diff.years, diff.months, diff.days      -- 2, 1, 17&lt;br /&gt;
H, M, S = diff.hours, diff.minutes, diff.seconds  -- 1, 35, 45&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
日期差值可以被加到一个日期上，也可以从一个日期上减去：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
date1 = Date(&amp;#039;8 Mar 2016 0:30:45&amp;#039;)&lt;br /&gt;
date2 = Date(&amp;#039;19 Jan 2014 22:55&amp;#039;)&lt;br /&gt;
diff = date1 - date2&lt;br /&gt;
date3 = date2 + diff&lt;br /&gt;
date4 = date1 - diff&lt;br /&gt;
text = date3:text(&amp;#039;ymd hms&amp;#039;)        -- 2016-03-08 00:30:45&lt;br /&gt;
text = date4:text(&amp;#039;ymd hms&amp;#039;)        -- 2014-01-19 22:55:00&lt;br /&gt;
equal = (date1 == date3)            -- true&lt;br /&gt;
equal = (date2 == date4)            -- true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
年龄和时间间隔的日期差可以接受一个代码，用于指定需要返回的日期间隔组成部分。对于时间间隔，会额外包含一天，因为它包含了最后一天：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 代码 !! 返回值&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;#039;ymwd&amp;#039;&amp;lt;/code&amp;gt; || years, months, weeks, days&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;#039;ymd&amp;#039;&amp;lt;/code&amp;gt;  || years, months, days&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;#039;ym&amp;#039;&amp;lt;/code&amp;gt;   || years, months&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;#039;y&amp;#039;&amp;lt;/code&amp;gt;    || years&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;#039;m&amp;#039;&amp;lt;/code&amp;gt;    || months&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;#039;wd&amp;#039;&amp;lt;/code&amp;gt;   || weeks, days&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;#039;w&amp;#039;&amp;lt;/code&amp;gt;    || weeks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;#039;d&amp;#039;&amp;lt;/code&amp;gt;    || days&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
&amp;lt;!-- 本行下加入模組的分類 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;InstantNull</name></author>
	</entry>
</feed>