DS's『 행복합시다 』

Carpe Programming/java

[epoch time] unix timestamp 쯤?

nolite 2014. 10. 1. 23:16

 

What is epoch time?

The Unix epoch (or Unix time or POSIX time or Unix timestamp) is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap seconds (in ISO 8601: 1970-01-01T00:00:00Z). Literally speaking the epoch is Unix time 0 (midnight 1/1/1970), but 'epoch' is often used as a synonym for 'Unix time'. Many Unix systems store epoch dates as a signed 32-bit integer, which might cause problems on January 19, 2038 (known as the Year 2038 problem or Y2038).  

Human readable time  Seconds
1 hour 3600 seconds
1 day 86400 seconds
1 week 604800 seconds
1 month (30.44 days)  2629743 seconds
1 year (365.24 days)   31556926 seconds

 

 

How to get the current epoch time in ...

PHP time()
Python import time first, then time.time()
Ruby Time.now (or Time.new). To display the epoch: Time.now.to_i
Perl time
Java long epoch = System.currentTimeMillis()/1000;
C# var epoch = (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
Objective-C [[NSDate date] timeIntervalSince1970]; (returns double) or NSString *currentTimestamp = [NSString stringWithFormat:@"%f", [[NSDate date] timeIntervalSince1970]];
C++11 double now = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count();
VBScript/ASP DateDiff("s", "01/01/1970 00:00:00", Now())
AutoIT _DateDiff('s', "1970/01/01 00:00:00", _NowCalc())
Delphi Epoch := DateTimetoUnix(Now); Tested in Delphi 2010.
R as.numeric(Sys.time())
Erlang calendar:datetime_to_gregorian_seconds(calendar:universal_time())-719528*24*3600.
MySQL SELECT unix_timestamp(now())
PostgreSQL SELECT extract(epoch FROM now());
SQLite SELECT strftime('%s', 'now');
Oracle PL/SQL SELECT (SYSDATE - TO_DATE('01/01/1970 00:00:00', 'MM-DD-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() returns time in milliseconds.
Visual FoxPro DATETIME() - {^1970/01/01 00:00:00} Warning: time zones not handled correctly
Adobe ColdFusion <cfset epochTime = left(getTickcount(), 10)>
Tcl/Tk clock seconds
Unix/Linux Shell date +%s
PowerShell get-date (get-date).touniversaltime() -uformat "%s"
Other OS's Command line: perl -e "print time" (If Perl is installed on your system)

 

Convert from human readable date to epoch

PHP strtotime("15 November 2012") (converts most English date texts) or:
date_create('01/15/2010')->format('U') (PHP5 DateTime class)
Python import time first, then int(time.mktime(time.strptime('2000-01-01 12:34:00', '%Y-%m-%d %H:%M:%S'))) - time.timezone
Ruby Time.local(year, month, day, hour, minute, second, usec ) (or Time.gm for GMT/UTC input). To display add .to_i
Perl Use the Perl Epoch routines
Java long epoch = new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse("01/01/1970 01:00:00").getTime() / 1000;
VBScript/ASP DateDiff("s", "01/01/1970 00:00:00", time field)
AutoIT _DateDiff('s', "1970/01/01 00:00:00", "YYYY/MM/DD HH:MM:SS")
Delphi Epoch := DateTimeToUnix(StrToDateTime(myString));
C Use the C Epoch Converter routines
R as.numeric(as.POSIXct("MM/dd/yyyy HH:mm:ss", origin="1970-01-01"))
MySQL SELECT unix_timestamp(time) Time format: YYYY-MM-DD HH:MM:SS or YYMMDD or YYYYMMDD
More on using Epoch timestamps with MySQL
PostgreSQL SELECT extract(epoch FROM date('2000-01-01 12:34'));
With timestamp: SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40-08');
With interval: SELECT EXTRACT(EPOCH FROM INTERVAL '5 days 3 hours');
SQLite SELECT strftime('%s',timestring);
SQL Server SELECT DATEDIFF(s, '1970-01-01 00:00:00', time field)
JavaScript Use the JavaScript Date object
Unix/Linux Shell date +%s -d"Jan 1, 1980 00:00:01" Replace '-d' with '-ud' to input in GMT/UTC time.

 

Convert from epoch to human readable date

PHP date(output format, epoch); Output format example: 'r' = RFC 2822 date
Python import time first, then time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime(epoch)) Replace time.localtime with time.gmtime for GMT time.
Ruby Time.at(epoch)
Perl Use the Perl Epoch routines
Java String date = new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(new java.util.Date (epoch*1000));
VBScript/ASP DateAdd("s", epoch, "01/01/1970 00:00:00")
AutoIT _DateAdd("s", $EpochSeconds , "1970/01/01 00:00:00")
Delphi myString := DateTimeToStr(UnixToDateTime(Epoch)); Where Epoch is a signed integer.
C Use the C Epoch Converter routines
Objective-C NSDate * myDate = [NSDate dateWithTimeIntervalSince1970:epoch]; NSLog(@"%@", date);
R as.POSIXct(epoch, origin="1970-01-01", tz="GMT")
MySQL FROM_UNIXTIME(epoch, optional output format) Default output format is YYY-MM-DD HH:MM:SS. If you need support for negative timestamps: DATE_FORMAT(DATE_ADD(FROM_UNIXTIME(0), interval -315619200 second),"%Y-%m-%d")

(replace -315619200 with epoch)

PostgreSQL PostgreSQL version 8.1 and higher: SELECT to_timestamp(epoch);  Older versions: SELECT TIMESTAMP WITH TIME ZONE 'epoch' + epoch * INTERVAL '1 second';
SQLite SELECT datetime(epoch_to_convert, 'unixepoch'); or local timezone: SELECT datetime(epoch_to_convert, 'unixepoch', 'localtime');
Oracle PL/SQL SELECT to_date('01-JAN-1970','dd-mon-yyyy')+(1326357743/60/60/24) from dual
Replace 1326357743 with epoch.
SQL Server DATEADD(s, epoch, '1970-01-01 00:00:00')
Microsoft Excel =(A1 / 86400) + 25569 Format the result cell for date/time, the result will be in GMT time (A1 is the cell with the epoch number). For other time zones: =((A1 +/- time zone adjustment) / 86400) + 25569.
Crystal Reports DateAdd("s", {EpochTimeStampField}-14400, #1/1/1970 00:00:00#) -14400 used for Eastern Standard Time. See Time Zones.
JavaScript Use the JavaScript Date object
Tcl/Tk clock format 1325376000
Unix/Linux Shell date -d @1190000000 Replace 1190000000 with your epoch, needs recent version of 'date'. Replace '-d' with '-ud' for GMT/UTC time.
PowerShell Function get-epochDate ($epochDate) { [timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970').AddSeconds($epochDate)) }, then use: get-epochDate 1279152364. Works for Windows PowerShell v1 and v2
Other OS's Command line: perl -e "print scalar(localtime(epoch))" (If Perl is installed) Replace 'localtime' with 'gmtime' for GMT/UTC time.

 

 

 

상기 내용은 여기에...   http://www.epochconverter.com/      웹 페이지에서 epoch 값 과 date 를 바로 converting 할 수 있다.

 

 

 

728x90