Temporal.PlainDateTime
Temporal.PlainDateTime 对象表示没有时区的日期(日历日期)和时间(挂钟时间)。它从根本上表示为日期(以及相关的日历系统)和时间的组合。
描述
PlainDateTime 本质上是 Temporal.PlainDate 和 Temporal.PlainTime 的组合。由于日期和时间信息之间没有太多交互,因此所有关于日期属性的一般信息都记录在 PlainDate 对象中,所有关于时间属性的一般信息都记录在 PlainTime 对象中。
如果日期时间表示应在不同时区保持不变的特定瞬间,则应改用 Temporal.ZonedDateTime 对象。当需要表示在特定挂钟时间发生的事件(该事件可能在不同时区是不同的瞬间)时,请使用 PlainDateTime。
RFC 9557 格式
PlainDateTime 对象可以使用 RFC 9557 格式进行序列化和解析,该格式是 ISO 8601 / RFC 3339 格式的扩展。该字符串具有以下形式(空格仅用于可读性,不应出现在实际字符串中)
YYYY-MM-DD T HH:mm:ss.sssssssss [u-ca=calendar_id]
YYYY-
一个四位数,或者一个带
+或-号的六位数。 MM-
一个从
01到12的两位数。 DD-
一个从
01到31的两位数。YYYY、MM和DD部分可以用-分隔或不用。 T可选-
日期时间分隔符,可以是
T、t或空格。当且仅当HH存在时才出现。 HH可选-
一个两位数,从
00到23。默认为00。 mm可选-
一个从
00到59的两位数。默认为00。 ss.sssssssss可选-
一个从
00到59的两位数。可以选择后跟.或,和一到九位数字。默认为00。HH、mm和ss部分可以用:分隔或不用。你可以只省略ss或同时省略ss和mm,因此时间可以有三种形式:HH、HH:mm或HH:mm:ss.sssssssss。 [u-ca=calendar_id]可选-
将
calendar_id替换为要使用的日历。有关常用支持的日历类型列表,请参阅Intl.supportedValuesOf()。默认为[u-ca=iso8601]。可以通过在键前加!来添加关键标志:例如[!u-ca=iso8601]。这个标志通常告诉其他系统,如果它们不支持它,就不能忽略它。如果注解包含两个或多个日历注解且其中一个是关键的,Temporal解析器将抛出错误。请注意,YYYY-MM-DD始终被解释为 ISO 8601 日历日期,然后转换为指定的日历。
作为输入,你可以选择包含偏移量和时区标识符,格式与 ZonedDateTime 相同,但它们将被忽略。请注意,偏移量不能是 Z。[key=value] 格式的其他注释也会被忽略,并且它们不能具有关键标志。
序列化时,你可以配置小数秒位数、是否显示日历 ID 以及是否为其添加关键标志。
构造函数
Temporal.PlainDateTime()实验性-
通过直接提供底层数据来创建新的
Temporal.PlainDateTime对象。
静态方法
Temporal.PlainDateTime.compare()实验性-
返回一个数字(-1、0 或 1),指示第一个日期时间是早于、等于还是晚于第二个日期时间。相当于先比较它们的日期,如果日期相同,则比较它们的时间。
Temporal.PlainDateTime.from()实验性-
从另一个
Temporal.PlainDateTime对象、具有日期和时间属性的对象或 RFC 9557 字符串创建新的Temporal.PlainDateTime对象。
实例属性
这些属性定义在 Temporal.PlainDateTime.prototype 上,并由所有 Temporal.PlainDateTime 实例共享。
Temporal.PlainDateTime.prototype.calendarId实验性-
返回一个字符串,表示用于解释内部 ISO 8601 日期的日历。
Temporal.PlainDateTime.prototype.constructor-
创建实例对象的构造函数。对于
Temporal.PlainDateTime实例,初始值是Temporal.PlainDateTime()构造函数。 Temporal.PlainDateTime.prototype.day实验性-
返回一个正整数,表示此日期在本月中的基于 1 的日期索引,这与你在日历上看到的日期数字相同。依赖于日历。通常从 1 开始并且是连续的,但并非总是如此。
Temporal.PlainDateTime.prototype.dayOfWeek实验性-
返回一个正整数,表示此日期在星期中的 1-based 天索引。星期中的天数从
1到daysInWeek顺序编号,每个数字都映射到其名称。日历相关。在日历中,1 通常表示星期一,即使使用该日历的语言环境可能将不同的日子视为一周的第一天(请参阅Intl.Locale.prototype.getWeekInfo())。 Temporal.PlainDateTime.prototype.dayOfYear实验性-
返回一个正整数,表示此日期在一年中的 1-based 天索引。这一年的第一天是
1,最后一天是daysInYear。日历相关。 Temporal.PlainDateTime.prototype.daysInMonth实验性-
返回一个正整数,表示此日期所在月份的天数。依赖于日历。
Temporal.PlainDateTime.prototype.daysInWeek实验性-
返回一个正整数,表示此日期所在星期中的天数。依赖于日历。对于 ISO 8601 日历,这总是 7,但在其他日历系统中,每周可能不同。
Temporal.PlainDateTime.prototype.daysInYear实验性-
返回一个正整数,表示此日期所在年份的天数。依赖于日历。对于 ISO 8601 日历,这是 365,闰年是 366。
Temporal.PlainDateTime.prototype.era实验性-
返回一个日历特定的小写字符串,表示此日期的纪元,如果日历不使用纪元(例如 ISO 8601),则返回
undefined。era和eraYear一起唯一地标识日历中的一年,就像year一样。依赖于日历。对于格里高利历,它是"gregory"或"gregory-inverse"。 Temporal.PlainDateTime.prototype.eraYear实验性-
返回一个非负整数,表示此日期在纪元内的年份,如果日历不使用纪元(例如 ISO 8601),则返回
undefined。年份索引通常从 1(更常见)或 0 开始,一个纪元内的年份可以随时间减少(例如格里高利历的公元前)。era和eraYear一起唯一地标识日历中的一年,就像year一样。依赖于日历。 Temporal.PlainDateTime.prototype.hour实验性-
返回一个从 0 到 23 的整数,表示此时间的小时部分。
Temporal.PlainDateTime.prototype.inLeapYear实验性-
返回一个布尔值,指示此日期是否在闰年。闰年是指比平年有更多天数(由于闰日或闰月)的年份。依赖于日历。
Temporal.PlainDateTime.prototype.microsecond实验性-
返回一个从 0 到 999 的整数,表示此时间的微秒(10-6 秒)部分。
Temporal.PlainDateTime.prototype.millisecond实验性-
返回一个从 0 到 999 的整数,表示此时间的毫秒(10-3 秒)部分。
Temporal.PlainDateTime.prototype.minute实验性-
返回一个从 0 到 59 的整数,表示此时间的分钟部分。
Temporal.PlainDateTime.prototype.month实验性-
返回一个正整数,表示此日期在一年中的 1-based 月份索引。这一年的第一个月是
1,最后一个月是monthsInYear。日历相关。请注意,与Date.prototype.getMonth()不同,索引是 1-based。如果日历有闰月,则具有相同monthCode的月份在不同年份可能具有不同的month索引。 Temporal.PlainDateTime.prototype.monthCode实验性-
返回一个日历特定的字符串,表示此日期的月份。依赖于日历。通常是
M加上一个两位数的月份编号。对于闰月,它是上一个月的代码后跟L。如果闰月是一年中的第一个月,代码是M00L。 Temporal.PlainDateTime.prototype.monthsInYear实验性-
返回一个正整数,表示此日期所在年份的月份数。依赖于日历。对于 ISO 8601 日历,这总是 12,但在其他日历系统中可能会有所不同。
Temporal.PlainDateTime.prototype.nanosecond实验性-
返回一个从 0 到 999 的整数,表示此时间的纳秒(10-9 秒)部分。
Temporal.PlainDateTime.prototype.second实验性-
返回一个从 0 到 59 的整数,表示此时间的秒部分。
Temporal.PlainDateTime.prototype.weekOfYear实验性-
返回一个正整数,表示此日期在
yearOfWeek中的 1-based 星期索引,如果日历没有明确定义的星期系统,则返回undefined。一年中的第一周是1。日历相关。请注意,对于 ISO 8601,一年中的最初几天和最后几天可能被归属于上一年或下一年的最后一周或第一周。 Temporal.PlainDateTime.prototype.year实验性-
返回一个整数,表示此日期的年份,相对于日历特定的纪元开始年份。依赖于日历。通常,第 1 年是最新纪元的第一年或 ISO 8601 的
0001年。如果纪元在年中开始,该年在纪元开始日期前后将具有相同的值。 Temporal.PlainDateTime.prototype.yearOfWeek实验性-
返回一个整数,表示与此日期的
weekOfYear配对的年份,如果日历没有明确定义的星期系统,则返回undefined。日历相关。这通常是日期的年份,但对于 ISO 8601,一年中的最初几天和最后几天可能归属于上一年或下一年的最后一周或第一周,导致yearOfWeek相差 1。 Temporal.PlainDateTime.prototype[Symbol.toStringTag]-
[Symbol.toStringTag]属性的初始值是字符串"Temporal.PlainDateTime"。此属性在Object.prototype.toString()中使用。
实例方法
Temporal.PlainDateTime.prototype.add()实验性-
返回一个新的
Temporal.PlainDateTime对象,表示此日期时间向前移动给定持续时间(以可由Temporal.Duration.from()转换的形式)。 Temporal.PlainDateTime.prototype.equals()实验性-
如果此日期时间的值与另一个日期时间(以可由
Temporal.PlainDateTime.from()转换的形式)等效,则返回true,否则返回false。它们通过日期和时间值以及日历进行比较,因此来自不同日历的两个日期时间可能通过Temporal.PlainDateTime.compare()被视为相等,但通过equals()则不相等。 Temporal.PlainDateTime.prototype.round()实验性-
返回一个新的
Temporal.PlainDateTime对象,表示此日期时间按给定单位四舍五入。 Temporal.PlainDateTime.prototype.since()实验性-
返回一个新的
Temporal.Duration对象,表示从另一个日期时间(以可由Temporal.PlainDateTime.from()转换的形式)到此日期时间的持续时间。如果另一个日期时间在此日期时间之前,则持续时间为正,如果之后,则为负。 Temporal.PlainDateTime.prototype.subtract()实验性-
返回一个新的
Temporal.PlainDateTime对象,表示此日期时间向后移动给定持续时间(以可由Temporal.Duration.from()转换的形式)。 Temporal.PlainDateTime.prototype.toJSON()实验性-
返回一个字符串,表示此日期时间采用与调用
toString()相同的 RFC 9557 格式。旨在由JSON.stringify()隐式调用。 Temporal.PlainDateTime.prototype.toLocaleString()实验性-
返回一个带有此日期时间语言敏感表示的字符串。
Temporal.PlainDateTime.prototype.toPlainDate()实验性-
返回一个新的
Temporal.PlainDate对象,表示此日期时间在同一日历系统中的日期部分(年、月、日)。 Temporal.PlainDateTime.prototype.toPlainTime()实验性-
返回一个新的
Temporal.PlainTime对象,表示此日期时间的时间部分(小时、分钟、秒和亚秒组件)。 Temporal.PlainDateTime.prototype.toString()实验性-
返回一个字符串,表示此日期时间采用 RFC 9557 格式。
Temporal.PlainDateTime.prototype.toZonedDateTime()实验性-
返回一个新的
Temporal.ZonedDateTime实例,表示与此普通日期时间相同的日期时间,但在指定的时区。 Temporal.PlainDateTime.prototype.until()实验性-
返回一个新的
Temporal.Duration对象,表示从此日期时间到另一个日期时间(以可由Temporal.PlainDateTime.from()转换的形式)的持续时间。如果另一个日期时间在此日期时间之后,则持续时间为正,如果之前,则为负。 Temporal.PlainDateTime.prototype.valueOf()实验性-
抛出
TypeError,这会阻止Temporal.PlainDateTime实例在算术或比较操作中被隐式转换为原始值。 Temporal.PlainDateTime.prototype.with()实验性-
返回一个新的
Temporal.PlainDateTime对象,表示此日期时间的一些字段被新值替换。 Temporal.PlainDateTime.prototype.withCalendar()实验性-
返回一个新的
Temporal.PlainDateTime对象,表示此日期时间在新日历系统中解释。 Temporal.PlainDateTime.prototype.withPlainTime()实验性-
返回一个新的
Temporal.PlainDateTime对象,表示此日期时间的时间部分完全被新时间替换(以可由Temporal.PlainTime.from()转换的形式)。
规范
| 规范 |
|---|
| Temporal # sec-temporal-plaindatetime-objects |
浏览器兼容性
加载中…