Epoch и Unix Timestamp — обозначение формата (способа) хранения даты и времени.
Прикладные системы хранят время кому как в голову взбредёт, но для практического использования часто полезно переводять время в/из unix timestamp. Сайт www.epochconverter.com набит под завязку информацией о конвертировани. Ниже часть главной страницы сайта на 06.03.2012. Это только шпаргалка, сайт содержит много полезного.
How to get the current epoch time in …
Perl | time |
PHP | time() |
Ruby | Time.now (or Time.new ). To display the epoch: Time.now.to_i |
Python | import time first, then time.time() |
Java | long epoch = System.currentTimeMillis()/1000; |
Microsoft .NET C# | epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000; |
VBScript/ASP | DateDiff("s", "01/01/1970 00:00:00", Now()) |
R | as.numeric(Sys.time()) |
Erlang | calendar:datetime_to_gregorian_seconds(calendar:now_to_universal_time( now()))-719528*24*3600. |
MySQL | SELECT unix_timestamp(now()) More info (+ negative epochs) |
PostgreSQL | SELECT extract(epoch FROM now()); |
Oracle PL/SQL | SELECT (SYSDATE - TO_DATE('01/01/1970 00:00:00', 'MM-DD-YYYY HH24:MI:SS')) * |
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. |
Tcl/Tk | clock seconds |
Unix/Linux Shell | date +%s |
PowerShell | Get-Date -UFormat "%s" Produces: 1279152364.63599 |
Other OS’s | Command line: perl -e "print time" (If Perl is installed on your system) |
Convert from human readable date to epoch
Perl | Use the Perl Epoch routines |
PHP | mktime(hour, minute, second, month, day, year) |
Ruby | Time.local(year, month, day, hour, minute, second, usec ) (or Time.gm for GMT/UTC input). To display add .to_i |
Python | import time first, then int(time.mktime(time.strptime('2000-01-01 12:34:00', '%Y-%m-%d %H:%M:%S'))) - time.timezone |
Java | long epoch = new java.text.SimpleDateFormat ("MM/dd/yyyy HH:mm:ss").parse("01/01/1970 01:00:00").getTime(); |
VBScript/ASP | DateDiff("s", "01/01/1970 00:00:00", time field) |
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 YYYYMMDDMore 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'); |
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
Perl | Use the Perl Epoch routines |
PHP | date(output format, epoch); Output format example: ‘r’ = RFC 2822 date |
Ruby | Time.at(epoch) |
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. |
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") |
C | Use the C Epoch Converter routines |
R | as.POSIXct(epoch, origin="1970-01-01") |
MySQL | from_unixtime(epoch, optional output format) The default output format is YYY-MM-DD HH:MM:SS more … |
PostgreSQL | PostgreSQL version 8.1 and higher: SELECT to_timestamp(epoch); Older versions: SELECT TIMESTAMP WITH TIME ZONE 'epoch' + epoch * INTERVAL '1 second'; |
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) , 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. |
Leave a Reply
You must be logged in to post a comment.