コンテンツにスキップ

UNIX thời gian

Xuất xứ: フリー bách khoa sự điển 『ウィキペディア ( Wikipedia ) 』
Hiện tại の Unix thời gian[Chú 1]
1728070460( đổi mới )
(ISO 8601Hình thức: 2024-10-04T19:34:20Z )
UNIX thời gian 1,000,000,000 まであとわずか の2001 năm 9 nguyệt 9 ngày

UNIX thời gian( ユニックスじかん ) またはUNIX thời khắc( ユニックスじこく,UNIX time( ユニックスタイム ),POSIXtime( ポジックスタイム ) ) とはコンピューターシステムThượng で のThời khắcBiểu hiện の một loại.Hiệp định thế giới khi(UTC) で の1970 năm1 nguyệt 1 ngàySáng 0 khi 0 phân 0 giây (UNIXエポック) から hình thức な kinh quá giây số として biểu される.

Thật の kinh quá giây số ではなく[1],そ の gian に挿 nhập されたNhuận giâyを dẫn き, trừ bỏ されたNhuận giâyを thêm えた trị である. Đại đa số の システムで chọn dùng されている[Chú 2].

UNIX hệオペレーティングシステム( データ hình はtime_t) だけでなく, hắn の nhiều く の オペレーティングシステムにおいてもこ の biểu hiện phương pháp が dùng いられている. システム bên trong では64ビットKý hiệu phó số nguyên( signed int ) や64ビットLần độ chặt chẽ di động số lẻ sốで tráp われていることが nhiều い. ここで, trước kia は nhiều かった32ビット số nguyên で tráp われていた trường hợp で, ký hiệu phó きであった trường hợp, そ の lớn nhất trị 2,147,483,647 を siêu えると phụ の trị になり, chính しく thời khắc を tráp えなくなるという vấn đề がある. これを2038 năm vấn đềという.

Hiệp định thế giới khi (UTC) と の quan hệ

[Biên tập]

UNIX thời khắc はシステム sống nhờ vào nhau だが, đại đa số の システムでは,Hiệp định thế giới khi(UTC) の thời khắc に cơ づき, 1970 năm 1 nguyệt 1 ngày sáng 0 khi 0 phân 0 giây ( UNIXエポック ) から の kinh quá giây số を,Nhuận giâyの tồn tại を làm lơ し hình thức な kém を tính toán した trị に chờ しい. したがって chính の nhuận giây 1 giây が挿 nhập された thời khắc を hiệp んだ2 giây gian において, UNIX thời khắc の trị は1 giây しか trị が tiến まない. システムによっては, trước sau の ある trình độ の thời gian に phân tán させてズレを hút thâu するも の もある. また nhuận giây の trước sau で の, giây より tế かい thời khắc の tráp いについては, システムにより dị なることがある ( đặc に, nhuận giây によって thời khắc が1 giây quyển き lệ ったか の ように thấy える trường hợp もあり đến る の で chú ý が tất yếu ).

Nhuận giây 1 giây が挿 nhập された thời khắc をはさむUNIX thời khắc の lệ
Hiệp định thế giới khi(UTC) UNIXエポックから の
Thật の kinh quá giây số[Chú 3]
UNIX thời khắc
1998-12-31T23:59:59 915148820 915148799
1998-12-31T23:59:60 915148821 915148800
1999-01-01T00:00:00 915148822 915148800
1999-01-01T00:00:01 915148823 915148801

Biểu hiện できる ngày phó の phạm 囲

[Biên tập]

UNIXエポックから の kinh qua thời gian を biểu hiện する tế の 単 vị として, giây bên ngoài にも, dạng 々な単 vị を sử うことができ, giây とナノ giây が lợi dụng されることが nhiều めであるが, lúc ban đầu のJavaJavaScriptはミリ giây を chọn dùng していた ( java.lang.System.currentTimeMillis()[2]など ). Biểu hiện するため の số trị として64ビット ký hiệu phó き số nguyên が sử われることが nhiều いが, 64ビットLần độ chặt chẽ di động số lẻ sốが sử われることもある (Pythonの time.time()[3]など ). かつては単 vị を giây として32ビット ký hiệu phó き số nguyên が sử われたこともあったがこれは2038 năm までしか biểu hiện できない.

Biểu hiện できる ngày phó の phạm 囲
Trị の hình Thời gian 単 vị Ngày phó の hạn cuối Ngày phó の hạn mức cao nhất
int32 Giây 1901 năm 12 nguyệt 13 ngày 20 khi 45 phân 52 giây 2038 năm 1 nguyệt 19 ngày 3 khi 14 phân 7 giây
int64 Giây 2.9e11 BC 2.9e11 AD[4]
ミリ giây 2.9e8 BC 2.9e8 AD[4]
マイクロ giây 290301 BC 294241 AD[4]
ナノ giây 1677 năm 9 nguyệt 21 ngày 00:12:43.145224192 2262 năm 4 nguyệt 11 ngày 23:47:16.854775807[5]

UNIX thời khắc の tỏ vẻ lệ

[Biên tập]
UNIX thời gian の lệ
UNIX thời gian Hiệp định thế giới khi(UTC) Nhật Bản giờ chuẩn(JST)
0 1970-01-01T00:00:00 1970-01-01T09:00:00
100000000 1973-03-03T09:46:40 1973-03-03T18:46:40
1000000000 2001-09-09T01:46:40 2001-09-09T10:46:40
1234567890 2009-02-13T23:31:30 2009-02-14T08:31:30
2147483647 2038-01-19T03:14:07 2038-01-19T12:14:07

プログラミング ngôn ngữ やシェルから の lợi dụng lệ

[Biên tập]

UNIX/LinuxシェルThượng で, UNIX thời gian をUTCに変 đổi する lệ

date -u -d '@1234567890'

*BSDの シェル thượng で, UNIX thời gian をUTCに変 đổi する lệ

date -jr '1234567890'

UNIX/Linux の シェル thượng で, UNIX thời gian をローカル thời khắc に変 đổi する lệ

date -d '@1234567890'

*BSD の シェル thượng で, UNIX thời gian をローカル thời khắc に変 đổi する lệ

date -j '+%s'

Webブラウザアドレスバー( URL lan ) にJavaScriptを nhập lực することで tỏ vẻ させる lệ (Firefox6.0 lấy hàng ではスクラッチパッド[Chú 4])

javascript:window.alert(Math.floor((new Date()).getTime()/1000))

C ngôn ngữで hiện tại の UNIX thời khắc を tỏ vẻ するプログラム

#include<stdio.h>
#include<time.h>

intmain(void)
{
time_tnow;
now=time(NULL);
printf("%lld",(longlong)now);
return0;
}

Chú thích

[Biên tập]

Chú 釈

[Biên tập]
  1. ^こ の ページが cuối cùng に sinh thành されたUNIX thời gian
  2. ^システム ( lệ えばLinuxシステム chờ のGNU Cライブラリ(glibc) ) は,tz databaseを dùng いて thật の kinh quá giây số に cơ づく thời khắc の phương thức に thiết り thế え khả năng である. そ の trường hợp は mới nhất の nhuận giây tình báo を lấy được しシステムに phản ánh させる tác nghiệp が tất yếu となる.
  3. ^Hiệp định thế giới khi(UTC) がQuốc tế nguyên tử khi(TAI) と cùng じSIGiây を chọn dùng した の は1972-01-01T00:00:00Z lấy hàng であり, それ trước kia の hiệp định thế giới khi の 1 giây はSIGiây とは dị なる.
  4. ^Internet Explorer9 lấy hàng,Google Chrome13 lấy hàng など のアドレスバーコピーペーストした trường hợp は lúc đầu に “javascript:” を thêm vào してください.

Xuất xứ

[Biên tập]

Quan liền hạng mục

[Biên tập]

Phần ngoài リンク

[Biên tập]