Temporal
æéå¯ç¨
æ¤ç¹æ§ä¸å±äºåºçº¿ï¼å 为å®å°æªå¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æã
Temporal å¯¹è±¡æ¯æå¨åç§åºæ¯ä¸ç®¡çæ¥æåæ¶é´ï¼å
æ¬å
ç½®çæ¶åºåæ¥å表示ãå¢éæ¶é´è½¬æ¢ãè¿ç®ãæ ¼å¼åçåè½ãå®è¢«è®¾è®¡ä¸º Date 对象çå®å
¨æ¿ä»£æ¹æ¡ã
æè¿°
ä¸å¤§å¤æ°å
¨å±å¯¹è±¡ä¸åï¼Temporal 䏿¯æé 彿°ãä½ ä¸è½å°å
¶ä¸ new è¿ç®ç¬¦ä¸èµ·ä½¿ç¨ï¼ä¹ä¸è½å° Temporal 对象ä½ä¸ºå½æ°è°ç¨ãTemporal çææå±æ§åæ¹æ³é½æ¯éæçï¼æ£å¦ Math 对象ï¼ã
Temporal æç夿ä¸å¼ºå¤§ç APIãå®éè¿å¤ä¸ªç±»æ´é²äºè¶
è¿ 200 个å®ç¨æ¹æ³ï¼å æ¤å¯è½æ¾å¾é叏夿ãæä»¬å°æä¾ä¸ä¸ªé«å±æ¬¡çæ¦è§ï¼éè¿°è¿äº API ä¹é´çå
³ç³»ã
èæ¯åæ¦å¿µ
JavaScript å¨ä¸å¼å§å°±æ Date 对象æ¥å¤çæ¥æåæ¶é´ã使¯ï¼Date API ç设计åºäº Java ä¸çè®¾è®¡æ¬ ä½³ç java.util.Date ç±»ï¼èè¯¥ç±»å¨ 2010 年代å就已被æ¿ä»£ï¼ä½æ¯ï¼åºäº JavaScript ååå
¼å®¹çç®æ ï¼Date ä»ç¶ä¿çå¨è¿é¨è¯è¨ä¸ã
卿´ä¸ªä»ç»å¼å§ä¹åï¼éè¦å¼ºè°çæ¯ï¼æ¥æå¤çæ¯å¤æçãDate ç大夿°é®é¢å¯ä»¥éè¿å¢å æ´å¤æ¹æ³æ¥ä¿®å¤ï¼ä½è¿å§ç»åå¨ä¸ä¸ªæ ¹æ¬æ§ç设计缺é·ï¼å®å¨åä¸ä¸ªå¯¹è±¡ä¸æ´é²äºè¿å¤çæ¹æ³ï¼å¯¼è´å¼åè
å 叏叏䏿¸
æ¥è¯¥ä½¿ç¨åªä¸ä¸ªèè¸©å°ææ³ä¸å°çåãä¸ä¸ªç²¾å¿è®¾è®¡ç API ä¸ä»
éè¦è½å®ææ´å¤ä»»å¡ï¼è¿åºå¨æ¯ä¸æ½è±¡å±ä¸æ¿æ
æ´å°èè´£ï¼å 为é¿å
误ç¨ä¸æ¯ææ´å¤ä½¿ç¨åºæ¯æ¯åæ ·éè¦çã
Date å¯¹è±¡åæ¶æ¿æ
ç两ç§è§è²ï¼
- ä½ä¸ºæ¶é´æ³ï¼è¡¨ç¤ºèªä¸ä¸ªåºå®æ¶é´ç¹ï¼ç§°ä¸ºçºªå ï¼ä»¥æ¥ç»è¿çæ¯«ç§æ°æçº³ç§æ°ã
- ä½ä¸ºæ¥æç»ä»¶çç»åä½ï¼å¹´ãæãæ¥ãæ¶ãåãç§ã毫ç§ã纳ç§ãå¹´ãæãæ¥è¿äºæ è¯åªæå¨åç
§æç§æ¥åç³»ç»æ¶æææä¹ãå½ä¸æä¸ªæ¶åºå
³èæ¶ï¼æ´ä¸ªç»åä½ä¼æ å°å°åå²ä¸çä¸ä¸ªå¯ä¸æ¶é´ç¹ã
Date对象æä¾äºç¨äºè¯»ååä¿®æ¹è¿äºç»ä»¶çæ¹æ³ã
æ¶åºæ¯å¤§é䏿¥æç¸å
³æ¼æ´çæ ¹æºãå½éè¿âåéç»åä½â模åä¸ Date äº¤äºæ¶ï¼æ¶é´åªè½å¤äºä¸¤ä¸ªæ¶åºä¹ä¸ï¼UTC æ¶åºåæ¬å°ï¼è®¾å¤ï¼æ¶åºï¼å¹¶ä¸æ æ³æå®ä»»ææ¶åºãæ¤å¤è¿ç¼ºå°âæ æ¶åºâçæ¦å¿µï¼æ æ¶åºè¢«ç§°ä¸ºæ¥åæ¥æï¼å¯¹åºæ¥æï¼æå¢éæ¶é´ï¼å¯¹åºæ¶é´ï¼ï¼å³ä½ â仿¥åææ¶éä¸çå°çâçæ¶é´ãä¾å¦ï¼å¦æä½ å¨è®¾ç½®æ¯å¤©çèµ·åºé¹éæ¶ï¼ä¸ç®¡æ¶ä¸æ¯å¦å¤äºå¤ä»¤æ¶ï¼ä¹ä¸ç®¡ä½ æ¯å¦æ
è¡è³ä¸åçæ¶åºçæ
åµï¼ä½ é½ä¼å¸æå®å§ç»è®¾ä¸ºâä¸å 8:00âã
Date è¿ç¼ºå°ç第äºä¸ªç¹æ§æ¯æ¥åç³»ç»ã大夿°äººå¯è½çæå
¬åï¼æ ¼éé«å©åï¼ï¼å®æå
Œ
åï¼BCï¼åå
Œ
åï¼ADï¼ä¸¤ä¸ªçºªå
ï¼æ 12 个æï¼æ¯ä¸ªæç天æ°ä¸åï¼æ¯ 4 å¹´æä¸ä¸ªé°å¹´ççãç¶èï¼å½ä½ 使ç¨å
¶ä»æ¥åç³»ç»ï¼æ¯å¦å¸ä¼¯æ¥æ¥åãä¸å½ååãæ¥æ¬æ¥åççï¼ä¸äºå
¬åçæ¦å¿µå°±å¯è½ä¸éç¨äºãä½¿ç¨ Date æ¶ï¼ä½ åªè½éç¨å
¬å模åã
Date è¿æè®¸å¤ä¸çæ³çåå²éçé®é¢ï¼ä¾å¦ææ setter é½å¯åï¼è¿å¸¸å¸¸å¯¼è´ä¸å¿
è¦çå¯ä½ç¨ï¼ï¼æ¥ææ¶é´åç¬¦ä¸²æ ¼å¼æ æ³ä»¥ä¸è´çæ¹å¼è§£æççãæç»ï¼æä½³è§£å³æ¹æ¡æ¯éæ°æå»ºä¸ä¸ª APIï¼èè¿æ£æ¯ Temporalã
API æ¦è§
Temporal æ¯ä¸ä¸ªä¸ Intl 类似çå½å空é´ï¼å
æ¬è¥å¹²ç±»åå½å空é´ï¼æ¯ä¸ªç±»åå½å空é´é½æ¨å¨å¤çæ¥æä¸æ¶é´ç®¡ççæä¸ªç¹å®æ¹é¢ãç±»å¯ä»¥è¢«å½ä¸ºä»¥ä¸å ç»ï¼
- è¡¨ç¤ºææ¶é´é¿åº¦ï¼ä¸¤ä¸ªæ¶é´ç¹ä¹é´çå·®å¼ï¼ï¼
Temporal.Duration - 表示æä¸ªæ¶é´ç¹ï¼
- 表示åå²ä¸çä¸ä¸ªå¯ä¸ç¬é´ï¼
- ä½ä¸ºæ¶é´æ³ï¼
Temporal.Instant - ä½ä¸ºä¸æ¶åºé
å¯¹çæ¥ææ¶é´åéç»åä½ï¼
Temporal.ZonedDateTime
- ä½ä¸ºæ¶é´æ³ï¼
- 表示ä¸å«æ¶åºçæ¥æ/æ¶é´ï¼å以âPlainâ为åç¼ï¼ï¼
- æ¥æï¼å¹´ãæãæ¥ï¼+ æ¶é´ï¼æ¶ãåãç§ã毫ç§ãå¾®ç§ã纳ç§ï¼ï¼
Temporal.PlainDateTimeï¼æ³¨ï¼ZonedDateTimeçåäºPlainDateTimeå ä¸æä¸ªæ¶åºï¼- æ¥æï¼å¹´ãæãæ¥ï¼ï¼
Temporal.PlainDate- å¹´ãæï¼
Temporal.PlainYearMonth - æãæ¥ï¼
Temporal.PlainMonthDay
- å¹´ãæï¼
- æ¶é´ï¼æ¶ãåãç§ã毫ç§ãå¾®ç§ã纳ç§ï¼ï¼
Temporal.PlainTime
- æ¥æï¼å¹´ãæãæ¥ï¼ï¼
- æ¥æï¼å¹´ãæãæ¥ï¼+ æ¶é´ï¼æ¶ãåãç§ã毫ç§ãå¾®ç§ã纳ç§ï¼ï¼
- 表示åå²ä¸çä¸ä¸ªå¯ä¸ç¬é´ï¼
æ¤å¤ï¼è¿æå¦ä¸ä¸ªå®ç¨å½åç©ºé´ Temporal.Nowï¼æä¾ä»¥ä¸åæ ¼å¼è·åå½åæ¶é´çæ¹æ³ã
å ±äº«çç±»æ¥å£
Temporal å½å空é´ä¸å
å«è®¸å¤ç±»ï¼ä½å®ä»¬å
±äº«å¾å¤ç¸ä¼¼çæ¹æ³ãä¸è¡¨ååºäºæ¯ä¸ªç±»çæææ¹æ³ï¼ä¸å
æ¬ç±»ä¹é´çè½¬æ¢æ¹æ³ï¼ï¼
ä¸è¡¨æ»ç»äºæ¯ä¸ªç±»å¯ç¨ç屿§ï¼è®©ä½ äºè§£æ¯ä¸ªç±»è½è¡¨ç¤ºåªäºä¿¡æ¯ã
ç±»ä¹é´ç转æ¢
ä¸è¡¨æ»ç»äºåç±»ä¹é´åå¨çææè½¬æ¢æ¹æ³ã
| 转æ¢èª | ||||||||
Instant |
ZonedDateTime |
PlainDateTime |
PlainDate |
PlainTime |
PlainYearMonth |
PlainMonthDay |
||
|---|---|---|---|---|---|---|---|---|
| 转æ¢ä¸º | Instant | / | toInstant() | å
转æ¢ä¸º ZonedDateTime | ||||
ZonedDateTime | toZonedDateTimeISO() | / | toZonedDateTime() | toZonedDateTime() | PlainDate#toZonedDateTime()ï¼ä½ä¸ºåæ°ä¼ å
¥ï¼ | å
转æ¢ä¸º PlainDate | ||
PlainDateTime | å
转æ¢ä¸º ZonedDateTime | toPlainDateTime() | / | toPlainDateTime() | PlainDate#toPlainDateTime()ï¼ä½ä¸ºåæ°ä¼ å
¥ï¼ | |||
PlainDate | toPlainDate() | toPlainDate() | / | ä¿¡æ¯ä¸éå | toPlainDate() | toPlainDate() | ||
PlainTime | toPlainTime() | toPlainTime() | ä¿¡æ¯ä¸éå | / | ä¿¡æ¯ä¸éå | |||
PlainYearMonth | å
转æ¢ä¸º PlainDate | toPlainYearMonth() | ä¿¡æ¯ä¸éå | / | å
转æ¢ä¸º PlainDate | |||
PlainMonthDay | toPlainMonthDay() | å
转æ¢ä¸º PlainDate | / | |||||
éè¿è¿äºè¡¨æ ¼ï¼ä½ åºè¯¥å¯¹å¦ä½ä½¿ç¨ Temporal API æäºåºæ¬è®¤è¯ã
æ¥å
æ¥åæ¯ä¸ç§ç»ç»æ¥æçæ¹æ³ï¼é常æå¨ãæãå¹´å纪å
ååæ¶æãä¸çä¸å¤§å¤æ°å°åºä½¿ç¨å
¬åï¼ä½ä¹å¨ä½¿ç¨è®¸å¤å
¶ä»çæ¥åï¼å°¤å
¶æ¯å¨å®æä¸æåèæ¯ä¸ãé»è®¤æ
åµä¸ï¼ææä¸æ¥åç¸å
³ç Temporal 对象é½ä½¿ç¨ ISO 8601 æ¥åç³»ç»ï¼è¯¥ç³»ç»åºäºå
¬åå¹¶å®ä¹äºé¢å¤çå¨ç¼å·è§åãIntl.supportedValuesOf() ååºäºæµè§å¨å¯è½æ¯æç大夿°æ¥åãè¿éæä»¬ç®è¦æ¦è¿°æ¥åç³»ç»æ¯å¦ä½å½¢æçï¼å¸®å©ä½ çè§£åªäºå ç´ å¯è½å æ¥åèå¼ã
å°ç䏿ä¸ä¸ªæ¾èç卿æ§äºä»¶ï¼ç»å¤ªé³å ¬è½¬ï¼ä¸æ¬¡ 365.242 天ï¼ãæçç»å°çå ¬è½¬ï¼ä»ä¸æ¬¡æ°æå°ä¸ä¸æ¬¡æ°æçº¦ 29.53 天ï¼ãå°çèªè½¬ï¼ä»æ¥åºå°æ¥åºçº¦ 24 å°æ¶ï¼ãæ¯ç§æå对âä¸å¤©âçè¡¡é齿¯ 24 å°æ¶ãå¶ç¶çååï¼å¦å¤ä»¤æ¶ï¼ä¸å¨æ¥åèç´ï¼èæ¯æ¶åºä¿¡æ¯çä¸é¨åã
- æäºæ¥å主è¦ä»¥ä¸å¹´å¹³å 365.242 天为åºåï¼è§å®ä¸å¹´æ 365 天ï¼å¹¶å¤§çº¦æ¯é 4 å¹´å¢å ä¸å¤©ï¼å³é°æ¥ãä¹åï¼ä¸å¹´ä¼è¢«è¿ä¸æ¥åå为âæâçé¨åãè¿äºæ¥å被称为é³åï¼solar calendarï¼ãå ¬ååå¸åæé³åï¼ä¼æåï¼é½å±äºé³åã
- æäºæ¥å主è¦ä»¥ä¸æå¹³å 29.5 天为åºåï¼è§å®æå¨ 29 天å 30 天ä¹é´äº¤æ¿ãç¶å 12 个æç»æä¸å¹´ï¼å ± 354 天ãè¿äºæ¥å被称为é´åï¼lunar calendarï¼ã伿¯å °åæ¯é´åãç±äºé´åå¹´çé¿åº¦ä¸å£è卿ä¸ç¸å ³ï¼é´åé常æ´å°è§ã
- è¿æä¸äºæ¥å主è¦ä»¥æç¸å¨æå®ä¹æä»½ï¼ç±»ä¼¼é´åã为äºè¡¥å¿ä¸é³åå¹´ä¹é´çº¦ 11 天çå·®è·ï¼å®ä¼å¤§çº¦æ¯ 3 å¹´å å ¥ä¸ä¸ªé°æãè¿äºæ¥å称为é´é³åï¼lunisolar calendarï¼ãå¸ä¼¯æ¥ååä¸å½åå齿¯é´é³åã
å¨ Temporal ä¸ï¼å䏿¥åç³»ç»ä¸çæ¯ä¸ªæ¥æé½ç±ä¸ä¸ªç»ä»¶å¯ä¸æ è¯ï¼yearãmonth å dayãyear éå¸¸ä¸ºæ£æ´æ°ï¼ä½ä¹å¯è½ä¸º 0 æè´æ°ï¼å¹¶éæ¶é´åè°éå¢ãyear å¼ä¸º 1ï¼æå¯è½åå¨ç 0ï¼ç§°ä¸ºè¯¥æ¥åç纪å
ï¼å¯ç±æ¯ç§æ¥åä»»æè®¾å®ãmonth ä¸ºæ£æ´æ°ï¼ä» 1 å¼å§ï¼æ¯æ¬¡éå¢ 1ï¼ç´å° date.monthsInYearï¼éåéç年份æ¨è¿é置为 1ãday 乿¯æ£æ´æ°ï¼ä½ä¸ä¸å®ä» 1 å¼å§ææ¯æ¬¡éå¢ 1ï¼å ä¸ºæ¿æ²»åå¨å¯è½å¯¼è´æ¥æè¢«è·³è¿æéå¤ãæ»ä½èè¨ï¼day ä¼éæä»½æ¨è¿èåè°å¢å 并卿忢æ¶éç½®ã
é¤äº year 以å¤ï¼å¯¹ä½¿ç¨çºªå
çæ¥åèè¨ï¼å¹´ä»½è¿å¯ä»¥ç± era ä¸ eraYear çç»åå¯ä¸æ è¯ãä¾å¦ï¼å
¬å使ç¨çºªå
âCEâå纪å
åâBCEâï¼å¹¶ä¸å¹´ä»½ -1 ä¸ { era: "bce", eraYear: 2 } çä»·ï¼æ³¨ææææ¥åé½åå¨å¹´ä»½ 0ï¼å¨å
¬åä¸ï¼ç±äºå¤©æè®¡å¹´ï¼å®å¯¹åºå
Œ
å 1 å¹´ï¼ãera æ¯å°åå符串ï¼eraYear æ¯ä»»ææ´æ°ï¼å¯ä»¥ä¸º 0 æè´æ°ï¼çè³å¯è½éæ¶é´éåï¼é常ç¨äºææ©ç纪å
ï¼ã
夿³¨ï¼å§ç»å° era å eraYear æå¯¹ä½¿ç¨ï¼ä¸è¦åªç¨å
¶ä¸ä¸ä¸ªãæ¤å¤ï¼ä¸ºé¿å
å²çªï¼å¨æå®å¹´ä»½æ¶ä¸è¦æ year ä¸ era/eraYear æ··ç¨ãéæ©ä¸ç§å¹´ä»½è¡¨ç¤ºæ¹å¼å¹¶ä¿æä¸è´ã
注æä»¥ä¸å¯¹å¹´ä»½çé误å设ï¼
- ä¸è¦å设
eraåeraYearæ»æ¯åå¨ï¼å®ä»¬å¯è½æ¯undefinedã - ä¸è¦å设
eraæ¯ç¨æ·å好çå符串ï¼èæ¯ä½¿ç¨toLocaleString()ä»¥æ ¼å¼åæ¥æã - ä¸è¦å设æ¥èªä¸åæ¥åç两个
yearå¼å¯æ¯è¾ï¼èæ¯ä½¿ç¨éææ¹æ³compare()ã - ä¸è¦å设ä¸å¹´æ 365/366 天æ 12 个æï¼èæ¯ä½¿ç¨
daysInYearåmonthsInYearã - ä¸è¦å设é°å¹´ï¼
inLeapYear为trueï¼åªå¤åºä¸å¤©ï¼å®å¯è½ä¼å¤åºä¸ä¸ªæã
é¤äº month 以å¤ï¼ä¸å¹´ä¸çæä»½è¿å¯ä»¥ç± monthCode å¯ä¸æ è¯ãmonthCode éå¸¸å¯¹åºæä»½åç§°ï¼ä½ month ä¸å¯¹åºãä¾å¦å¨é´é³åä¸ï¼è¥ä¸¤ä¸ªæä»½ç monthCode ç¸åï¼å
¶ä¸ä¸ä¸ªå±äºé°å¹´èå¦ä¸ä¸ªä¸å±äºé°å¹´ï¼é£ä¹å¨é°æä¹åï¼å®ä»¬ç month å¼ä¼å æå
¥äºä¸ä¸ªé¢å¤çæä»½èä¸åã
夿³¨ï¼ä¸ºé¿å
å²çªï¼å¨æå®æä»½æ¶ä¸è¦æ··ç¨ month ä¸ monthCodeãéæ©ä¸ç§æä»½è¡¨ç¤ºæ¹å¼å¹¶ä¿æä¸è´ãå¦æä½ éè¦ä¸å¹´ä¸æä»½ç顺åºï¼ä¾å¦å¾ªç¯éåæä»½ï¼æ¶ï¼month æ´æç¨ï¼å¦æä½ éè¦æä»½çåç§°ï¼ä¾å¦ç¨äºå¨åçæ¥ï¼æ¶ï¼monthCode æ´æç¨ã
注æä»¥ä¸å¯¹æä»½çé误å设ï¼
- ä¸è¦å设
monthCodeä¸monthæ»æ¯å¯¹åºã - ä¸è¦å设ä¸ä¸ªæç天æ°ï¼èæ¯ä½¿ç¨
daysInMonthã - ä¸è¦å设
monthCodeæ¯ç¨æ·å好çå符串ï¼èæ¯ä½¿ç¨toLocaleString()ä»¥æ ¼å¼åæ¥æã - é常ä¸è¦ææä»½åç§°ç¼åå°æ°ç»æå¯¹è±¡ä¸ãå³ä½¿
monthCodeéå¸¸å¯¹åºæä¸æ¥åä¸çæä»½åç§°ï¼æä»¬ä»å»ºè®®å§ç»éè¿ä¾å¦date.toLocaleString("en-US", { calendar: date.calendarId, month: "long" })ä»¥è®¡ç®æä»½åç§°ã
é¤äº dayï¼åºäºæä»½çç´¢å¼ï¼ä»¥å¤ï¼ä¸å¹´ä¸çæä¸å¤©è¿å¯ä»¥ç± dayOfYear å¯ä¸æ è¯ãdayOfYear æ¯æ£æ´æ°ï¼ä» 1 å¼å§ï¼æ¯æ¬¡éå¢ 1ï¼ç´å° date.daysInYearã
âå¨âçæ¦å¿µä¸å
³ä¹ä»»ä½å¤©æäºä»¶ï¼èå
³ä¹æå建æãè½ç¶æå¸¸è§çé¿åº¦æ¯ 7 天ï¼ä½ä¸å¨ä¹å¯ä»¥æ¯ 4ã5ã6ã8 ææ´å¤å¤©ââçè³æ²¡æåºå®å¤©æ°ãè¦è·åææ¥ææå¤âå¨âçå
·ä½å¤©æ°ï¼ä½¿ç¨è¯¥æ¥æç daysInWeekãTemporal éè¿ weekOfYear ä¸ yearOfWeek çç»å以è¯å«å¨ãweekOfYear æ¯æ£æ´æ°ï¼ä» 1 å¼å§ï¼æ¯æ¬¡éå¢ 1ï¼éåéç年份æ¨è¿é置为 1ãyearOfWeek éå¸¸ä¸ year ç¸åï¼ä½å¯è½ä¼å¨æ¯å¹´å¼å¤´æç»å°¾ä¸åï¼å 为ä¸å¨å¯è½è·¨è¶ä¸¤ä¸ªå¹´ä»½ï¼è yearOfWeek 伿 ¹æ®æ¥åè§åéæ©å
¶ä¸ä¸ä¸ªå¹´ä»½ã
夿³¨ï¼å§ç»å° weekOfYear ä¸ yearOfWeek æå¯¹ä½¿ç¨ï¼ä¸è¦æ··ç¨ weekOfYear ä¸ yearã
注æä»¥ä¸å¯¹âå¨âçé误å设ï¼
- ä¸è¦å设
weekOfYearä¸yearOfWeekæ»æ¯åå¨ï¼å®ä»¬å¯è½æ¯undefinedã - ä¸è¦å设æ¯å¨æ»æ¯ 7 天ï¼èæ¯ä½¿ç¨
daysInWeekã - 注æå½å
TemporalAPI 䏿¯æâå¹´ - å¨âæ¥æï¼å æ¤ä½ ä¸è½ç¨è¿äºå±æ§æé æ¥ææå°æ¥æåºåå为âå¹´ - å¨â表示ãå®ä»¬åªæ¯ä¿¡æ¯æ§å±æ§ã
RFC 9557 æ ¼å¼
ææ Temporal ç±»é½å¯ä»¥ä½¿ç¨ RFC 9557 æå®çæ ¼å¼è¿è¡åºåååååºååï¼è¯¥æ ¼å¼åºäº ISO 8601 / RFC 3339ã宿´æ ¼å¼å¦ä¸ï¼ç©ºæ ¼ä»
为æ¹ä¾¿é
读ï¼å®é
å符串ä¸ä¸åºå
å«ç©ºæ ¼ï¼ï¼
YYYY-MM-DD T HH:mm:ss.sssssssss Z/±HH:mm [time_zone_id] [u-ca=calendar_id]
ä¸åç类对æ¯ä¸ªç»ä»¶æ¯å¦å¿ é¡»å卿ä¸åè¦æ±ï¼å æ¤ä½ ä¼å¨æ¯ä¸ªç±»çææ¡£ä¸çå°âRFC 9557 æ ¼å¼âä¸èï¼è¯´æè¯¥ç±»å¯è¯å«çæ ¼å¼ã
è¿ä¸ Date 使ç¨çæ¥ææ¶é´åç¬¦ä¸²æ ¼å¼é常ç¸ä¼¼ï¼åæ ·åºäº ISO 8601ã主è¦çæ°å¢è½åæ¯å¯ä»¥æå®å¾®ç§ä¸çº³ç§ç»ä»¶ï¼ä»¥åæå®æ¶åºåæ¥åç³»ç»ã
å¯è¡¨ç¤ºçæ¥æ
ææè¡¨ç¤ºç¹å®æ¥åæ¥æç Temporal 对象é½å¯¹å¯è¡¨ç¤ºæ¥æèå´æ½å äºç±»ä¼¼çéå¶ï¼ä»¥ Unix 纪å
为ä¸å¿ç ±108 天ï¼å«è¾¹çï¼ï¼å³ä» -271821-04-20T00:00:00 å° +275760-09-13T00:00:00 çç¬é´çèå´ãè¿ä¸æææ¥æèå´ç¸åã详ç»è§åå¦ä¸ï¼
Temporal.Instantä¸Temporal.ZonedDateTimeä¼ç´æ¥å¯¹å ¶epochNanoseconds弿½å 该éå¶ãTemporal.PlainDateTime以 UTC æ¶åºè§£éå ¶æ¥æï¼å¹¶è¦æ±å®è·ç¦» Unix 纪å 为 ±(108 + 1) 天ï¼ä¸å«è¾¹çï¼ï¼å æ¤å ¶ææèå´ä¸º-271821-04-19T00:00:00å°+275760-09-14T00:00:00ï¼ä¸å«è¾¹çï¼ãè¿ä¿è¯ä»»ä½ZonedDateTimeé½è½è½¬æ¢ä¸ºPlainDateTimeï¼æ è®ºå ¶åç§»éå¦ä½ãTemporal.PlainDateå¯¹è¯¥æ¥æçæ£åï¼12:00:00ï¼åºç¨ä¸PlainDateTimeç¸åçæ£æ¥ï¼å æ¤å ¶ææèå´ä¸º-271821-04-19å°+275760-09-13ãè¿ä¿è¯ä»»ä½PlainDateTimeé½è½è½¬æ¢ä¸ºPlainDateï¼æ è®ºå ¶å ·ä½æ¶é´å¦ä½ï¼åä¹äº¦ç¶ãTemporal.PlainYearMonthçææèå´ä¸º-271821-04å°+275760-09ãè¿ä¿è¯ä»»ä½PlainDateé½è½è½¬æ¢ä¸ºPlainYearMonthï¼æ è®ºå ¶æ¥æå¦ä½ï¼é¤éé ISO æ¥åæä»½ç第ä¸å¤©è½å¨ ISO æä»½-271821-03ä¸ï¼ã
Temporal å¯¹è±¡ä¼æç»æé è¶
åºå
¶éå¶çæ¥æ/æ¶é´å®ä¾ãè¿å
æ¬ï¼
- ä½¿ç¨æé 彿°æ
from()éææ¹æ³ã - 使ç¨
with()æ¹æ³æ´æ°æ¥ååæ®µã - 使ç¨
add()ãsubtract()ãround()æå ¶ä»æ¹æ³æ´¾åæ°å®ä¾ã
éæå±æ§
Temporal.Duration-
表示两个æ¶é´ç¹ä¹é´çå·®å¼ï¼å¯ç¨äºæ¥æ/æ¶é´è¿ç®ãå®åºç¡è¡¨ç¤ºä¸ºå¹´ãæãå¨ãæ¥ãæ¶ãåãç§ã毫ç§ãå¾®ç§åçº³ç§æ°å¼çç»åã
Temporal.Instant-
表示æ¶é´ä¸çä¸ä¸ªå¯ä¸ç¹ï¼å ·æçº³ç§çº§ç²¾åº¦ãå®åºç¡è¡¨ç¤ºä¸ºèª Unix 纪å ï¼1970 å¹´ 1 æ 1 æ¥ UTC é¶ç¹ï¼ä»¥æ¥ççº³ç§æ°ï¼ä¸èè任使¶åºææ¥åç³»ç»ã
Temporal.Now-
æä¾ä»¥ä¸åæ ¼å¼è·åå½åæ¶é´çæ¹æ³ã
Temporal.PlainDate-
表示ä¸ä¸ªæ¥åæ¥æï¼ä¸å«æ¶é´ææ¶åºçæ¥æï¼ï¼ä¾å¦ï¼æ¥åä¸çä¸ä¸ªæç»ä¸æ´å¤©çäºä»¶ï¼æ 论åçå¨åªä¸ªæ¶åºãå®åºç¡è¡¨ç¤ºä¸ºä¸ä¸ª ISO 8601 æ¥åæ¥æï¼å å«å¹´ãæãæ¥å段ï¼ä»¥åå ³èçæ¥åç³»ç»ã
Temporal.PlainDateTime-
表示ä¸ä¸ªä¸å«æ¶åºçæ¥æï¼æ¥åæ¥æï¼åæ¶é´ï¼å¢éæ¶é´ï¼ãå®åºç¡è¡¨ç¤ºä¸ºä¸ä¸ªæ¥æï¼å¸¦ææ¥åç³»ç»ï¼ä¸ä¸ä¸ªæ¶é´çç»åã
Temporal.PlainMonthDay-
表示ä¸ä¸ªæ¥åæ¥æçæä¸æ¥ï¼ä¸å å«å¹´ä»½ææ¶åºï¼ä¾å¦ï¼æ¯å¹´éå¤ä¸æç»ä¸æ´å¤©çæ¥åäºä»¶ãå®åºç¡è¡¨ç¤ºä¸ºä¸ä¸ª ISO 8601 æ¥åæ¥æï¼å å«å¹´ãæãæ¥å段ï¼ä»¥åå ³èçæ¥åç³»ç»ã年份ç¨äºå¨é ISO æ¥åç³»ç»ä¸æ¶é¤âæâæ¥âæ§ä¹ã
Temporal.PlainTime-
表示ä¸ä¸ªä¸å«æ¥æææ¶åºçæ¶é´ï¼ä¾å¦ï¼æ¯å¤©å¨å䏿¶é´åççéå¤äºä»¶ãå®åºç¡è¡¨ç¤ºä¸ºç±æ¶ãåãç§ã毫ç§ãå¾®ç§å纳ç§å¼ç»æçç»åã
Temporal.PlainYearMonth-
表示ä¸ä¸ªæ¥åæ¥æçå¹´åæï¼ä¸å 嫿¥ææ¶åºï¼ä¾å¦ï¼æ¥åä¸æç»æ´ä¸ªæçäºä»¶ãå®åºç¡è¡¨ç¤ºä¸ºä¸ä¸ª ISO 8601 æ¥åæ¥æï¼å å«å¹´ãæãæ¥å段ï¼ä»¥åå ³èçæ¥åç³»ç»ãæ¥å段ç¨äºå¨é ISO æ¥åç³»ç»ä¸æ¶é¤âå¹´âæâæ§ä¹ã
Temporal.ZonedDateTime-
表示带æ¶åºçæ¥æä¸æ¶é´ãå®åºç¡è¡¨ç¤ºä¸ºä¸ä¸ªç¬é´ãä¸ä¸ªæ¶åºä»¥åä¸ä¸ªæ¥åç³»ç»çç»åã
Temporal[Symbol.toStringTag]-
[Symbol.toStringTag]屿§çåå§å¼æ¯å符串"Temporal"ãè¯¥å±æ§ç¨äºObject.prototype.toString()ã
è§è
| è§è |
|---|
| Temporal> # sec-temporal-objects> |