日期 |
保持特定的时间点 |
更多信息 |
提供单位: |
语义媒体Wiki |
自版本起: |
1.4.0 |
直到版本: |
仍在使用中 |
数据类型ID: |
_日期
|
在此wiki中: |
日期
|
目录 |
|
这个数据类型 日期用于表示时间点的数据值。它能够以统一的格式支持整个人类历史中的日期,并为支持更多语言提供国际化选项。所有日期和时间均指服务器(或wiki)的“本地时间”。wiki可以定义通用约定所指的时区。对于导出,给出的时间没有时区信息。但是,支持与该本地时间的时间偏移。
自语义媒体Wiki 1.8.02012年12月2日发布,与MW 1.17.0-1.22.x兼容
(1.22.1除外)。日期以完全序列化的格式存储,包括日历模型。
显示格式[编辑]
日期以简单格式显示,无法使用用户首选项中的语言设置进行更改。显示日期中的月份名称只是根据维基的当前语言进行翻译(如果有翻译的名称)。显示日期时不考虑用户设置。
如果省略了日期的一部分,则显示会考虑在内。因此,指定为“2008”的日期也将在任何地方打印为“2008年”,即使与其他日期进行比较时,它可能被解释为“Jan 1 2008 00:00:00”。
结果格式化程序[编辑]
#ISO标准
[编辑]
如果您想在查询的打印输出请求中保留简单格式(内联查询或概念)您可以使用“国际标准化组织
”。因此,不显示“2008年1月9日”(通过打印输出请求实现?生日
)您将获得“2008-01-09”(通过打印输出请求实现?生日#ISO
)这是一种普通格式,表示ISO格式的国际日期字符串。
#ISO-P标准
[编辑]
与“国际标准化组织
“完成部分日期的结果格式化程序,”ISO-P标准
(P代表“部分”)格式化程序以ISO格式呈现部分日期:
- 2022→ 2022
- 2022年4月→ 2022-04
- 2022年4月1日→ 2022-04-01
理由:有时,一个日期只指定一年或一年和一个月,例如在活动规划期间。在稍后的某个时间点,日期以月和日完成。
此格式化程序从开始可用语义媒体Wiki 4.1.0于2023年1月21日发布,与MW 1.35.0-1.37.x兼容。.
#MEDIAWIKI公司
[编辑]
从开始语义媒体Wiki 1.7.02012年1月1日发布,与MW 1.16.x-1.19.x兼容。您还可以使用“MEDIAWIKI公司
“在打印输出请求背后,使用MediaWiki的i18n方法进行时间和日期格式化。它具有卓越的i18n支持,但无法处理所有可能的值,如BC日期。
要与MediaWiki输出相对应,“MEDIAWIKI公司
“将根据首选项和语言设置识别用户设置。
#LOCL(锁定)
[编辑]
从开始语义媒体Wiki 2.4.02016年7月9日发布,与MW 1.19.0-1.27.x兼容。1还可以以每种语言预定义的格式显示总共四种精度的值:
Y(Y)
(年)
前Y
(年、月)
F j,Y
(年、月、日)
H: i:s,j F Y
(年、月、日、时、分、秒)
收件人
在用户首选项中的本地时间设置中(请参见本地时间(_T).)
@德阿特
特定语言的当地时间(此处为奥地利德语)
预定义的格式将根据用户对语言(用户语言)的首选设置显示给用户。通过特殊页面浏览数据时始终使用“浏览”或用于“日期”类型的属性页上显示的带注释的数据值。显示的精度取决于注释到相应属性的数据值:如果没有时间戳信息的日期被注释为例如。[[日期:2016/08/17]]
浏览界面和查询将自动选择“F j,Y
“显示格式精度:”2016年8月16日“(英文)等。
当用户的本地时间与服务器时间不同时,可以使用本地时间。请参见本地时间(_T).
如果没有为语言指定精度,则将应用英语的默认格式。
- 示例
请参阅上的帮助页<沙盒.语义媒体wiki.org>举一个真实的例子。
#F类
(自由格式)[编辑]
从开始语义媒体Wiki 2.4.02016年7月9日发布,与MW 1.19.0-1.27.x兼容。 2,支持自由格式,其中选项字符串的格式为D M j G:i:s T Y
(请参见日期时间
)可用于生成单独的打印输出。限制:
- 格式化程序不支持像公元前10000年(史前)这样的日期(而是返回ISO日期--10000-01-01),其他公元前900年2月2日这样的日期将被格式化为-0900/01/25或-0900/02/02 JL。
- JD(JL)中存储的日期不会自动转换,而是用JL标记以指示其型号
{{#提问:[[示例]]|?日期#GR-F[Y/m/d H:i:s]=标签1(GR)|?日期#-F[Y/m/d H:i:s]=标签2|?日期#-F[D M j G:i:s T Y]=标签3|?日期#-F[l jS\ of F Y h:i:s A]=标签4}}
#索特基
[编辑]
返回有助于比较时间数据项的数字。对于儒略日时代的日期(大约从公元前4713年开始),它相当于儒略日的数字。对于较早的日期,使用带有日期分数的(负)年份数字(忽略时间)。
#JD公司
[编辑]
返回儒略日日期值的。
输入示例[编辑]
- 英语中的典型输入日期示例如下
注释 |
结果 |
评论
|
[[日期:2000年2月11日10:00:01]] |
2000年2月11日10:00:01 |
带时间的完整日期 |
[[日期:2000年2月11日]] |
2000年2月11日 |
公正的日期 |
[[日期:2000年2月]] |
2000年2月 |
月份和年份 |
[[日期::2000年]] |
2000 |
一年一年 |
[日期:2000年2月11日10:00:01PM] |
2000年2月11日10:00:01 PM |
完整的日期和时间,PM |
[[日期:2000年2月11日22:00:01]] |
2000年2月11日22:00:01 |
24小时内完成日期 |
[[日期::2000-02-11T22:00:01]] |
2000年2月11日22:00:01 |
ISO样式日期 |
[[日期:2000-02-11T22:00:01+02:00]] |
2000-02-11T22:00:01+02:00 |
带偏移量的ISO样式日期 |
[[日期:2000年2月2日]] |
2000年2月2日 |
支持不同的输入顺序 |
[[日期:2-3-2000]] |
2-3-2000 |
首选口译,月或日,有时取决于语言设置 |
[[日期:2000年2月3日]] |
2/3/2000 |
各种分隔符在所有语言中都可以识别 |
[[日期:公元前300年1月1日]] |
公元前300年1月1日 |
支持BC/公共纪元之前的日期 |
[[日期:公元前14000000000年]] |
14000000000 BC |
宇宙的估计年龄 |
[[日期:2000年2月11日Jl]] |
2000年2月11日Jl |
儒略历的日期 |
[[日期:1492年2月11日Gr]] |
1492年2月11日Gr |
日期被视为公历 |
[[日期:2000年2月11日10:00 GMT]] |
2000年2月11日10:00 GMT |
带时区快捷方式的日期 |
[[日期:2000-02-22] |
2000-02-22 |
MySQL日期格式 |
[[日期::孙军20 23:21:05+0200]] |
6月20日星期日23:21:05+0200 |
ISO日期本身不正确
|
- 以下示例中的注释不正确
注释错误 |
结果 |
评论
|
[[日期:1999-00-00]] |
1999-00-00“1999-00-00”包含无法根据日期组件的可用匹配矩阵解释的序列。 |
MySQL部分日期格式 |
[[日期::孙军20 23:21:05 1993]] |
孙军20 23:21:05 1993 |
无法识别的订单 |
其他语言也可能支持其他字符串作为月份名称,并且它们可能会选择对不明确日期的不同首选解释。然而,基本格式是相同的。
更多示例[编辑]
- API示例
日历模型[编辑]
目前,Type:Date支持两种日历模型:格里高利和儒略1582年,天主教会对儒略历进行了改革。所以约会在24点之前。1582年2月默认指儒略历。因此,改革后的日期被视为公历。然而,可以通过用Jl或Gr(也可以理解为旧式(OS))注释来手动指定输入日期的日历模型。在内部,Type:Date使用序言公历是希腊历法的延续,代表日期。
语义媒体Wiki 1.8.02012年12月2日发布,与MW 1.17.0-1.22.x兼容
(1.22.1除外)。增加了对新输出格式的支持“希腊
“和”JL公司
“可用于内联查询定义需要显示的日历模型。写入日期时,相同的字符串也可以用作修饰符。如果没有给出任何内容,SMW将在输入和输出上采用相同的默认日历模型。
而不是在输出语句中显示带注释的日期“1796年11月6日Jl”?Geburtsdatam公司
,可以使用输出语句将此日期显示为“1796年11月17日Gr”?Geburtsdatam#GR公司
.
语义媒体Wiki 2.4.02016年7月9日发布,与MW 1.19.0-1.27.x兼容。如果不是希腊日历日期,则表示日期的日历模型,并且SMW_DV_TIMEV_CM
1可用于禁用此选项.
最大日期范围[编辑]
类型:日期能够处理整个历史记录中的日期,具有存储的完全精度,以及排序和查询的高度精度。根据当今大多数理论,支持的过去日期范围应包括时间的开始。支持的未来日期的范围受到了更严格的限制,但它也允许年份数字按10^9的顺序排列。
时代信息[编辑]
支持显示正年份的纪元信息(如果表示),从开始语义媒体Wiki 2.4.02016年7月9日发布,与MW 1.19.0-1.27.x兼容。.5
BC、负年份和年份0[编辑]
普通纪元(又称BC)之前的年份可以用日期中的“BC”表示。假设没有“0年”:历史上的年份顺序是。。。,公元前2年、公元前1年、公元1年、2年。。。当作为输入时,0年(BC或非BC)被解释为1 BC,但不鼓励使用这种方法。
SMW中使用的内部数字日期模型支持年份0,并认为它与“1BC”相同。根据这一约定,例如,“-100”年与“公元前101年”相同。此约定与ISO 6801和XML模式数据类型第二版中的备注一致(后者使用了一个不同的约定,不允许第0年,但它明确支持ISO约定,并宣布未来在XML中使用此约定)。注意,目前的实施不支持将负数作为输入;负数只在内部使用。
时间偏移和时区[编辑]
支持计时(例如“1 1 2008 12:00-2:00”)。如上所述,这些是指当地时间。时间偏移考虑了闰年,例如,日期“2004年2月28日23:00+2:00”相当于“2004年二月29日01:00:00”,而“1900年二月28日23:00+2:00”相当于”1900年3月1日01:00:00”。此外,可以通过时区的通用快捷方式指定偏移量(例如ADT、AST、CET、CST、CXT、EST、HAC、HAT、HNR、MEZ、MST、NFT):“1998年3月1日08:00:00 EST”。
对表格输出中的日期进行排序[编辑]
的可排序表代码维基百科无法处理日期。要使它们正确排序,需要使用td元素中的“data-sort-value”属性提供数字排序键(查看任何实际SMW表的HTML示例)。为了实现这一点,新参数“#索特基
已添加到此数据类型中,通过该数据类型可以根据需要获取“数据分类值”的数字排序键。例如,以下查询显示日期及其排序键:
{{#提问:[[修改日期::+]]|?修改日期|?修改日期#SORTKEY}}
对于可以有多个值的属性,只有一个“#索特基
必须使用(因为即使一个单元格中有多个日期,整个表行也是作为一行排序的)。这可以通过使用参数来实现+极限
“如本例所示:
{{#提问:[[测试日期::+]]|?测试日期|?测试日期#SORTKEY|+限制=1}}
不完整日期的处理[编辑]
实施通知和存储是否省略了日期/时间的部分(如“2008”或“2007年5月”)。对于所有导出和排序目的,不完整的日期都使用默认值填写(通常使用尽可能早的时间,即将“2008”解释为“Jan 1 2008 00:00:00”)。但未指定内容的信息保留在内部,以改进行为,例如用于输出(查询值时不打印默认值)。
只有日期的次要部分可以省略:“2008年5月”有效,但“5月1日”无效。之所以如此,是因为在排序日期时,无法对后者进行合理的默认解释。为了支持排序和查询,必须将所有日期解释为一个具体的精确时间点,这在需要时在内部完成,即使是对于不完整的日期也是如此。
技术说明[编辑]
请参见1
时间值格式设置工具::getCaptionFromDataItem
使用默认的内容语言内容语言或(如果可用)页面内容语言
外部语言::getPreferredDateFormatByPrecision
确定PHP DateTime格式字符串作为特定语言的首选项,并结合精度
IntlTimeFormatter::getLocalizedFormat
(#LOCL)使用外部语言::getPreferredDateFormatByPrecision
确定日期/时间输出的首选本地化表示
未决问题[编辑]
- SMW尚未完全支持公元前10000年及更早的日期。(参见SMW问题5153).6
- MediaWiki的自定义日期格式只能用于1901-12-14和2038-01-19之间的日期。
- 国际化是不完整的:“BC”、“AD”、“PM”、“AM”对所有语言都是固定的。
- 尚不支持(历史)日历模型之间的转换。