存档:数据类型“日期”

来自semantic-mediawiki.org
跳转到:航行,搜索
日期
保持特定的时间点
更多信息
提供单位: 语义媒体Wiki
自版本起: 1.4.0
直到版本: 仍在使用中
数据类型ID:
在此wiki中: 日期
目录

这个数据类型 日期用于表示时间点的数据值。它能够以统一的格式支持整个人类历史中的日期,并为支持更多语言提供国际化选项。所有日期和时间均指服务器(或wiki)的“本地时间”。wiki可以定义通用约定所指的时区。对于导出,给出的时间没有时区信息。但是,支持与该本地时间的时间偏移。

输入示例[编辑]

英语中的典型输入日期示例如下:

  • 2000年2月11日10:00:01(填写日期和时间)
  • 2000年2月11日(恰好日期)
  • 2000年(仅一年)
  • 2000年2月11日10:00:01 PM(填写日期和时间,PM)
  • 2000年2月11日22:00:01(填写日期,24小时)
  • 2000-02-11T22:00:01(ISO样式日期)
  • 2000-02-11T22:00:01+02:00(带偏移的ISO样式日期)
  • 2000年2月2日(支持不同的输入顺序)
  • 2-3-2000(首选口译,月或日,有时取决于语言设置)
  • 2000年2月3日(各种分隔符在所有语言中都能识别)
  • 公元前300年1月1日(支持公元前/公共纪元之前的日期)
  • 14000000000 BC(估计宇宙年龄)
  • 2000年2月11日Jl(儒略历日期)
  • 1492年2月11日Gr(日期视为公历)
  • 2000年2月11日10:00 GMT(带有时区快捷方式的日期)
  • 2000-02-22(MySQL日期格式)
  • 1999-00-00“1999-00-00”包含无法根据日期组件的可用匹配矩阵解释的序列。(MySQL部分日期格式)

测试:

  • 孙军20 23:21:05 1993

其他语言也可能支持其他字符串作为月份名称,并且它们可能会选择对不明确日期的不同首选解释。然而,基本格式是相同的。

显示格式[编辑]

日期以简单格式显示,无法使用用户首选项中的语言设置进行更改。显示日期中的月份名称仅根据wiki的当前语言进行翻译(如果有翻译的名称)。显示日期时不考虑用户设置。从Semantic MediaWiki 1.7.0版开始,您还可以在打印输出请求后面使用“#MediaWiki”,以使用MediaWikii18n方法设置时间和日期格式。它具有卓越的i18n支持,但无法处理所有可能的值,因为MediaWiki的格式仅扩展到非常有限的日期范围,通常在1901-12-14和2038-01-19之间。请注意,此格式与LocalSettings.php中的wiki语言集合并$wg语言代码.

如果您想在查询的打印输出请求中保留简单格式(内联查询概念)您可以在这种类型的打印输出请求后面使用“#ISO”。因此,不显示“2008年1月9日”(通过打印输出请求实现?生日)您将获得“2008-01-09”(通过打印输出请求实现?生日#ISO)这是一种普通格式,表示ISO格式的国际日期字符串。

显示时会考虑是否省略了日期的某些部分。因此,指定为“2008”的日期也将在任何地方打印为“2008年”,即使与其他日期进行比较时,它可能被解释为“Jan 1 2008 00:00:00”。

不完整日期的处理[编辑]

实施通知并存储是否省略了日期/时间的部分(如“2008年”或“2007年5月”)。对于所有导出和排序目的,不完整的日期都使用默认值填写(通常使用尽可能早的时间,即将“2008”解释为“Jan 1 2008 00:00:00”)。但未指定内容的信息保留在内部,以改进行为,例如用于输出(查询值时不打印默认值)。

只有日期的次要部分可以省略:“2008年5月”有效,但“5月1日”无效。之所以如此,是因为在排序日期时,无法对后者进行合理的默认解释。为了支持排序和查询,必须将所有日期解释为一个具体的精确时间点,这在需要时在内部完成,即使是对于不完整的日期也是如此。

日历模型[编辑]

目前,Type:Date支持两种日历模型:Gregorian和Julian1582年,天主教会对儒略历进行了改革。所以约会在24点之前。1582年2月默认是指儒略历。因此,改革后的日期被视为公历。但是,可以通过使用Jl或Gr(也可以理解为Old Style(OS))注释来手动指定输入日期的日历模型。在内部,Type:Date使用怀疑公历是希腊历法的延续,代表日期。

最大日期范围[编辑]

类型:日期能够处理整个历史记录中的日期,具有存储的完全精度,以及排序和查询的高度精度。根据当今大多数理论,支持的过去日期范围应包括时间的开始。支持的未来日期的范围受到了更严格的限制,但它也允许年份数字按10^9的顺序排列。

BC、负年份和0年[编辑]

普通纪元(又称BC)之前的年份可以用日期中的“BC”表示。假设没有“0年”:历史上的年份序列是。。。,公元前2年、公元前1年、公元1年、2年。。。当作为输入时,0年(BC或非BC)被解释为1BC,但不鼓励使用。

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”。

未决问题[编辑]

  • MediaWiki的自定义日期格式只能用于1901-12-14和2038-01-19之间的日期。
  • 国际化是不完整的:“BC”、“AD”、“PM”、“AM”对所有语言都是固定的。
  • 尚不支持(历史)日历模型之间的转换。



本文档页面适用于1.7.0至1.7.0的所有SMW版本。
其他版本:1.7.1 – 1.7.11.4.0 – 1.6.2其他语言:判定元件