Unixã¿ã€ã ã¹ã¿ã³ãã®è§£èª¬
Unixã¿ã€ã ã¹ã¿ã³ãã¯1970幎1æ1æ¥ 00:00:00 UTCïŒããšããã¯ãïŒããã®åçŽãªç§æ°ãä»ã¯çŽ17åã1ã€ã®æŽæ°ãæéã®äžç¹ã衚ããã¿ã€ã ãŸãŒã³ã®ææ§ãããã©ãŒãããã®è°è«ããªãã
éçºè ã奜ãçç±ïŒæ¯èŒãç°¡åïŒæ°åã倧ããïŒæå»ãé ãïŒããœãŒããããããä¿åãã³ã³ãã¯ãïŒ1ã€ã®æŽæ°ã«ã©ã vs ã¿ã€ã ãŸãŒã³ã¡ã¿ããŒã¿ä»ãã®datetimeåïŒãã©ã®èšèªã«ãçµã¿èŸŒã¿å€æãããïŒJavaScriptã®Date.now()ã¯ããªç§ãPythonã®time.time()ã¯ç§ãè¿ãã
ããªç§ãšç§ã®æ··åã¯å®éã«èµ·ãããJavaScriptãšJavaã¯ããªç§ïŒ13æ¡ïŒ1715600000000ïŒãUnix/LinuxãPythonãPHPãã»ãšãã©ã®APIã¯ç§ïŒ10æ¡ïŒ1715600000ïŒã倿ããæ¥ä»ã1970幎1æã«ãªã£ãããããªç§ãæåŸ ãã颿°ã«ç§ãæž¡ããŠããå¯èœæ§ãé«ãããã®ããŒã«ã¯æ¡æ°ã§èªåæ€åºããã
2038幎åé¡ïŒ32ããã笊å·ä»ãæŽæ°ã®æå€§å€ã¯2,147,483,647ãã€ãŸã2038幎1æ19æ¥ 03:14:07 UTCããã以éã32ãããã¿ã€ã ã¹ã¿ã³ãã¯è² ã®æ°ã«ãªãŒããŒãããŒãããã»ãšãã©ã®ææ°ã·ã¹ãã ã¯64ãããã¿ã€ã ã¹ã¿ã³ãã䜿çšããŠããããçµã¿èŸŒã¿ã·ã¹ãã ãã¬ã¬ã·ãŒããŒã¿ããŒã¹ã¯ãŸã 32ãããã䜿çšã
äœ¿ãæ¹
- 1Unixã¿ã€ã ã¹ã¿ã³ãïŒç§ãŸãã¯ããªç§ïŒãå ¥åãããšãããŒã«ãèªåå€å¥ã
- 2ãŸãã¯æ¥ä»/æå»ãéžãã§ã¿ã€ã ã¹ã¿ã³ãã«å€æã
- 3çµæã¯ISO 8601ãããŒã«ã«ã¿ã€ã ãŸãŒã³ãUTCãåæè¡šç€ºã
- 4ãçŸåšã®ã¿ã€ã ã¹ã¿ã³ããååŸãã§çŸåšæå»ã®Unixã¿ã€ã ã¹ã¿ã³ããååŸã
䜿çšå Žé¢
APIã¬ã¹ãã³ã¹ããã°ã®ã¿ã€ã ã¹ã¿ã³ããèªã
APIã{"created_at": 1715600000}ãè¿ãããããäœæ¥ãç¥ããããæ°åã貌ãä»ããŠæ¥ä»ãååŸã
JWTããŒã¯ã³ã®æå¹æéããããã°
JWTããŒã¯ã³ã®"exp"ã¯ã¬ãŒã ã¯Unixã¿ã€ã ã¹ã¿ã³ããJWTããã³ãŒãããŠexpå€ãååŸãããã«è²Œãä»ããŠãã€æéåãã確èªã
ãã£ãã·ã¥TTLãšcronã¹ã±ãžã¥ãŒã«ã®èšå®
çŸåšã®ã¿ã€ã ã¹ã¿ã³ããååŸãã86400ïŒ1æ¥ã®ç§æ°ïŒãè¶³ããšæå¹æéã¿ã€ã ã¹ã¿ã³ãã«ãªãã
ã¿ã€ã ã¹ã¿ã³ãåã䜿ã£ãããŒã¿ããŒã¹ã¯ãšãª
ãå é±ã®å šã¬ã³ãŒãããã¯ãšãªããã«ã¯ã仿¥ã®æ¥ä»ãã¿ã€ã ã¹ã¿ã³ãã«å€æãã604800ïŒ7Ã86400ïŒãåŒãã
ããããèœãšã穎
ç§ vs ããªç§ïŒæ¡æ°ã確èª
10æ¡ïŒç§ã13æ¡ïŒããªç§ãæ¥ä»ã1970幎1æã«ãªã£ããæ··åããŠããããã®ããŒã«ã¯èªåæ€åºããããã³ãŒãã¯ããªããããããªããAPI/ã©ã€ãã©ãªãäœãæåŸ ãããåžžã«ç¢ºèªã
ã¿ã€ã ã¹ã¿ã³ãã¯UTCã§ãã¿ã€ã ãŸãŒã³è¡šç€ºã¯ããŒã«ã«
ã¿ã€ã ã¹ã¿ã³ã1715600000ã¯äžçäžã§åãç¬éãããã衚瀺ã¯ã¿ã€ã ãŸãŒã³ã«äŸåãããåžžã«UTCã§ä¿åã»éä¿¡ãã衚瀺æã®ã¿ããŒã«ã«ã«å€æã
ãµããŒã¿ã€ã 倿ŽããŸããã¹ã±ãžã¥ãŒãªã³ã°ã«ã¿ã€ã ã¹ã¿ã³ãã䜿ããªã
ã¿ã€ã ã¹ã¿ã³ãã¯ãµããŒã¿ã€ã ãç¥ããªããç¹°ãè¿ãã®ããŒã«ã«ã¿ã€ã ã€ãã³ãã«ã¯ã09:00 America/New_YorkããšããŠä¿åããåçã«èšç®ããã
è² ã®ã¿ã€ã ã¹ã¿ã³ãã¯æå¹ïŒ1970幎以åã®æ¥ä»ïŒ
ã¿ã€ã ã¹ã¿ã³ã-86400ã¯1969幎12æ31æ¥ãäžéšã®ã·ã¹ãã ã¯è² ã®ã¿ã€ã ã¹ã¿ã³ããæ£ããåŠçã§ããªãã
äŸ
ç§ã¿ã€ã ã¹ã¿ã³ã â æ¥ä»
APIã¬ã¹ãã³ã¹ã®å žåçãª10æ¡Unixã¿ã€ã ã¹ã¿ã³ãã
Input
1715600000Output
2024-05-13T12:53:20.000Z (UTC) / 2024幎5æ13æ¥ æææ¥ããªç§ã¿ã€ã ã¹ã¿ã³ã â æ¥ä»
13æ¡ã®JavaScriptã¿ã€ã ã¹ã¿ã³ãïŒDate.now()ã®åºåïŒã
Input
1715600000000Output
2024-05-13T12:53:20.000Z (UTC) / åãç¬éãããªç§ç²ŸåºŠæ©èœ
- ç§ïŒ10æ¡ïŒvs ããªç§ïŒ13æ¡ïŒãèªåæ€åº
- åæ¹å倿ïŒã¿ã€ã ã¹ã¿ã³ã â æ¥ä» ãš æ¥ä» â ã¿ã€ã ã¹ã¿ã³ã
- ISO 8601ãããŒã«ã«ã¿ã€ã ãUTCãåæè¡šç€º
- ã¯ã³ã¯ãªãã¯ãçŸåšã®ã¿ã€ã ã¹ã¿ã³ããååŸããã¿ã³
- è² ã®ã¿ã€ã ã¹ã¿ã³ãïŒ1970幎以åã®æ¥ä»ïŒã«å¯Ÿå¿
- 100%ãã©ãŠã¶å ã§åäœããããŒã¿ã¯ãµãŒããŒã«éä¿¡ãããªã
ãããã質å
ãªãã¿ã€ã ã¹ã¿ã³ãã1970幎1æ1æ¥ã«å€æãããïŒ
ããããããªç§ãæåŸ ãã颿°ã«ç§ãæž¡ããŠããã1000ãæããïŒnew Date(1715600000 * 1000)ãæ¡æ°ã確èªã
Unixã¿ã€ã ã¹ã¿ã³ãã®æå€§å€ã¯ïŒ
32ãããïŒ2,147,483,647ïŒ2038幎1æ19æ¥ïŒã64ãããïŒçŽ2920å幎ãJavaScriptã®Dateãªããžã§ã¯ãã¯64ãããæµ®åå°æ°ç¹ã§ããªç§ã䜿çšãããšããã¯ååŸçŽÂ±285,000幎ãŸã§æ£ç¢ºã
åèšèªã§çŸåšã®Unixã¿ã€ã ã¹ã¿ã³ããååŸããã«ã¯ïŒ
JavaScript: Math.floor(Date.now()/1000)ãPython: int(time.time())ãPHP: time()ãJava: System.currentTimeMillis()/1000ãGo: time.Now().Unix()ãJavaScriptã®Date.now()以å€ã¯ãã¹ãŠç§ãè¿ãã
Unixã¿ã€ã ã¹ã¿ã³ãã¯ãããç§ã®åœ±é¿ãåããïŒ
åããªããUnixæéã¯ãããç§ãç¡èŠããæ¯æ¥ãæ£ç¢ºã«86400ç§ã§ãããšã¿ãªãããããç§ãçºçãããšãUnixæéã¯1ç§ãç¹°ãè¿ããé£ã°ãïŒå®è£ ã«ããïŒãNTPã§è£æ£ãããã
ããŒã¿ããŒã¹ã«ã¯ã¿ã€ã ã¹ã¿ã³ããšISOæååã©ã¡ãã§ä¿åãã¹ãïŒ
ã»ãšãã©ã®å ŽåãããŒã¿ããŒã¹åºæã®timestamp/datetimeåã䜿çšïŒPostgreSQLã®TIMESTAMPTZãMySQLã®DATETIMEïŒãæŽæ°ã¿ã€ã ã¹ã¿ã³ãã䜿ãå Žé¢ïŒã€ã³ããã¯ã¹ä»ãã«ã©ã ã§æå€§ã¯ãšãªé床ãå¿ èŠãUnixæéããæ±ããªãã·ã¹ãã ãšã®äºææ§ãæ¥ä»åã®ãªãããŒããªã¥ãŒã¹ãã¢ã«ä¿åããå Žåã
ãã³ããšé¢é£ã¯ãŒã¯ãããŒ
- ã¿ã€ã ã¹ã¿ã³ããå«ãJSONããŒã¿ãèŠãããæŽåœ¢ããŸãããïŒJSONãã©ãŒããã¿ãŒ.
- åºçã¿ã€ã ã¹ã¿ã³ãããæ£ç¢ºãªå¹Žéœ¢ãç¥ããããšãã«ã幎霢èšç®æ©.
- æéããŒã¹ã®ãŠããŒã¯IDãå¿ èŠãªãããã¡ãã§çæã§ããŸããUUIDçæããŒã«.
- URLã¯ãšãªæååã«ã¿ã€ã ã¹ã¿ã³ããå«ããå Žåã®ãšã³ã³ãŒãã¯ãã¡ããURLãšã³ã³ãŒããŒ.