프로그래밍 언어별 유닉스 시간 확인 방법(unix time)
간단한 설명
UNIX TIME은 유닉스에서 사용한 시간의 표현방법으로 "1970-01-01 00:00:00" UTC부터 1초씩 증가한 숫자다.(그 이전의 시간은 음수로 표시된다)그레고리력(태양력)을 사용하지만 윤초는 무시한다.
유닉스는 C로 개발되어 C언어의 32비트 정수형인 time_t 데이터 형의 저장하는 시간 개념과 같다.
따라서 32비트 정수형 최대값인 "2147483647" 숫자의 UTC는 "2038-01-19 03:14:07"며, 그 이후 1초가 지나는 순간 부터는 모두가 알고 있는 문제점이 있다.
언어별 유닉스 시간 명령어
구분 | 명령어 |
---|---|
PHP | time() |
Ruby | Time.now 또는 Time.new |
Python | import time first, then int(time.time()) |
Java | long epoch = System.currentTimeMillis()/1000; |
MySQL | SELECT unix_timestamp(now()) |
PostgreSQL | SELECT extract(epoch FROM now()); |
Oracle PL/SQL | SELECT (SYSDATE - TO_DATE('01-01-1970 00:00:00', 'DD-MM-YYYY HH24:MI:SS')) * 24 * 60 * 60 FROM DUAL |
SQL Server | SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE()) |
JavaScript | Math.round(new Date().getTime()/1000.0) (그냥 getTime()은 밀리초) |
Perl | time |
Bash | date +%s |
PowerShell | Get-Date -UFormat "%s" |
Microsoft .NET C# | epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000; |
VBScript/ASP | DateDiff("s", "01/01/1970 00:00:00", Now()) |
Erlang | calendar:datetime_to_gregorian_seconds(calendar:now_to_universal_time( now()))-719528*24*3600. 또는 element(1, now()) * 10000 + element(2, now()). |
Actionscript | (new Date()).time |
ColdFusion (CFML) MX 6.1+ | #int( getTickCount() / 1000 )# |
Unix/Linux Shell | date +%s |
Other OS’s | perl -e "print time" (Perl 설치되어 있어야함) |