프로그래밍 언어별 유닉스 시간 확인 방법(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 설치되어 있어야함)


참고