Час Unix, ці час POSIX — сыстэма вызначэньня часу, прынятая ў UNIX і POSIX-сумяшчальных апэрацыйных сыстэмах. Час лічыцца ад пачатку гэтак званай «эры Unix» (па-ангельску: Unix Epoch) — 1 студзеня 1970 году, і строга прымацаваны да ўнівэрсальнага каардынаванага часу, за выняткам высакосных сэкундаў. Час Unix не зьяўляецца ні лінейным эквівалентам часу, ні эквівалентам унівэрсальнага каардынаванага часу (з-за высакосных сэкундаў, напрыклад, 31 сьнежня 1998 году, 23:59:60). На большасьці Unix-падобных сыстэмаў атрымаць бягучы час Unix можна камандай date +%s. У некаторых мовах праграмаваньня ёсьць свае сродкі для атрыманьня часу Unix.

9 верасьня 2001 году, роўна ў 01:46:40 (UTC), у дзесятковым прадстаўленьні час Unix быў роўны 1 000 000 000, што было адсьвяткавана некаторымі юзэр-групамі.[1] 13 лютага 2009 году, роўна ў 23:31:30 (UTC), у дзесятковым прадстаўленьні час Unix быў роўны 1 234 567 890. Гэтая падзея была шырока адсьвяткаваная па ўсім сьвеце групамі тэхнічных спэцыялістаў.[2][3]

Праблема 2038 году

рэдагаваць

Час Unix перадаецца і захоўваецца ў знакавым 32-бітным цэлым, а паколькі адлік ідзе ад чацьвера ў 00:00:00 UTC 1 студзеня 1970 году,[4] то з-за абмежаваньня максымальнае значэньне дасягае 2 147 483 647, што эквівалентна аўторку ў 03:14:07 UTC 19 студзеня 2038.[5] З-за знакавасьці зьменнай пасьля дасягненьня верхняга ліміту зьлічэньне часу «пераскочыць» у адмоўную частку дыяпазону: –2 147 483 648, што змусіць праграмы лічыць 2038 год фактычна 1901-м.

  NODES