Unix Timestamp Code Examples by Programming Language

Complete code examples and routines for working with Unix timestamps in various programming languages and databases.

How to get the current epoch time

PHP

time()
php

More PHP

Python

import time; time.time()
python

Source

Ruby

Time.now (or Time.new). To display the epoch: Time.now.to_i
ruby

Perl

time
perl

More Perl

Java

long epoch = System.currentTimeMillis()/1000;
java

Returns epoch in seconds.

C#

DateTimeOffset.Now.ToUnixTimeSeconds()
c#

(.NET Framework 4.6+/.NET Core), older versions: var epoch = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds;

Objective-C

[[NSDate date] timeIntervalSince1970];
objective-c

(returns double) or NSString *currentTimestamp = [NSString stringWithFormat:@"%f", [[NSDate date] timeIntervalSince1970]];

C++11

double now = std::chrono::duration_cast<std::chrono::seconds> (std::chrono::system_clock::now().time_since_epoch()).count();
c++11

Lua

epoch = os.time([date])
lua

VBScript/ASP

See the examples
vbscript/asp

AutoIT

_DateDiff('s', "1970/01/01 00:00:00", _NowCalc())
autoit

Delphi

Epoch := DateTimetoUnix(Now);
delphi

Tested in Delphi 2010.

Dart

DateTime.now().microsecondsSinceEpoch
dart

R

as.numeric(Sys.time())
r

Erlang/OTP

erlang:system_time(seconds).
erlang/otp

(version 18+), older versions: calendar:datetime_to_gregorian_seconds(calendar:universal_time())-719528*24*3600.

MySQL

SELECT unix_timestamp(now())
mysql

More MySQL examples

PostgreSQL

SELECT extract(epoch FROM now());
postgresql

SQLite

SELECT strftime('%s', 'now');
sqlite

Oracle PL/SQL

SELECT (CAST(SYS_EXTRACT_UTC(SYSTIMESTAMP) AS DATE) - TO_DATE('01/01/1970','DD/MM/YYYY')) * 24 * 60 * 60 FROM DUAL;
oracle pl/sql

SQL Server

SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())
sql server

IBM Informix

SELECT dbinfo('utc_current') FROM sysmaster:sysdual;
ibm informix

JavaScript

Math.floor(new Date().getTime()/1000.0)
javascript

The getTime method returns the time in milliseconds.

Visual FoxPro

DATETIME() - {^1970/01/01 00:00:00}
visual foxpro

Warning: time zones not handled correctly

Go

time.Now().Unix()
go

More Go

Adobe ColdFusion

<cfset epochTime = left(getTickcount(), 10)>
adobe coldfusion

Tcl/Tk

clock seconds
tcl/tk

Unix/Linux Shell

date +%s
unix/linux shell

Solaris

/usr/bin/nawk 'BEGIN {print srand()}'
solaris

Solaris doesn't support date +%s, but the default seed value for nawk's random-number generator is the number of seconds since the epoch.

PowerShell

[int][double]::Parse((Get-Date (get-date).touniversaltime() -UFormat %s))
powershell

Other OS's

perl -e "print time"
other os's

(If Perl is installed on your system)

Convert from human-readable date to epoch

PHP

strtotime("15 November 2018")
php

(converts most English date texts) or: date_create('11/15/2018')->format('U') (using DateTime class) More PHP

Python

import calendar, time; calendar.timegm(time.strptime('2000-01-01 12:34:00', '%Y-%m-%d %H:%M:%S'))
python

Ruby

Time.local(year, month, day, hour, minute, second, usec )
ruby

(or Time.gm for GMT/UTC input). To display add .to_i

Perl

Use the Perl Epoch routines
perl

Java

long epoch = new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse("01/01/1970 01:00:00").getTime() / 1000;
java

Timestamp in seconds, remove '/1000' for milliseconds.

VBScript/ASP

DateDiff("s", "01/01/1970 00:00:00", time field)
vbscript/asp

More ASP

AutoIT

_DateDiff('s', "1970/01/01 00:00:00", "YYYY/MM/DD HH:MM:SS")
autoit

Delphi

Epoch := DateTimeToUnix(StrToDateTime(myString));
delphi

C

Use the C Epoch Converter routines
c

R

as.numeric(as.POSIXct("YYYY-MM-dd HH:mm:ss", tz = "GMT", origin="1970-01-01"))
r

The origin parameter is optional

Go

Example code
go

See Go documentation

Rust

SystemTime::now().duration_since(SystemTime::UNIX_EPOCH)
rust

SystemTime documentation

Adobe ColdFusion

int(parseDateTime(datetime).getTime()/1000);
adobe coldfusion

MySQL

SELECT unix_timestamp(time)
mysql

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'));
postgresql

With timestamp: SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2018-02-16 20:38:40-08'); With interval: SELECT EXTRACT(EPOCH FROM INTERVAL '5 days 3 hours');

SQLite

SELECT strftime('%s',timestring);
sqlite

SQL Server

SELECT DATEDIFF(s, '1970-01-01 00:00:00', time field)
sql server

JavaScript

Use the JavaScript Date object
javascript

Unix/Linux Shell

date +%s -d"Jan 1, 1980 00:00:01"
unix/linux shell

Replace '-d' with '-ud' to input in GMT/UTC time.

Convert from epoch to human-readable date

PHP

date(output format, epoch);
php

Output format example: 'r' = RFC 2822 date, more PHP examples

Python

import time; time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime(epoch))
python

Replace time.localtime with time.gmtime for GMT time. Or using datetime: import datetime; datetime.datetime.utcfromtimestamp(epoch).replace(tzinfo=datetime.timezone.utc)

Ruby

Time.at(epoch)
ruby

C#

private string epoch2string(int epoch) {
  return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(epoch).ToShortDateString();
}
c#

Perl

Use the Perl Epoch routines
perl

Java

String date = new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(new java.util.Date (epoch*1000));
java

Epoch in seconds, remove '*1000' for milliseconds.

Lua

datestring = os.date([format[,epoch]])
lua

VBScript/ASP

DateAdd("s", epoch, "01/01/1970 00:00:00")
vbscript/asp

More ASP

AutoIT

_DateAdd("s", $EpochSeconds , "1970/01/01 00:00:00")
autoit

Dart

DateTime.fromMicrosecondsSinceEpoch(epoch)
dart

Delphi

myString := DateTimeToStr(UnixToDateTime(Epoch));
delphi

Where Epoch is a signed integer.

C

Use the C Epoch Converter routines
c

Objective-C

NSDate * myDate = [NSDate dateWithTimeIntervalSince1970:epoch]; NSLog(@"%@", date);
objective-c

R

as.POSIXct(epoch, origin="1970-01-01", tz="GMT")
r

Go

Example code
go

See Go documentation

Adobe ColdFusion

DateAdd("s",epoch,"1/1/1970");
adobe coldfusion

MySQL

FROM_UNIXTIME(epoch, optional output format)
mysql

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) More MySQL

PostgreSQL

SELECT to_timestamp(epoch);
postgresql

PostgreSQL version 8.1 and higher: Source Older versions: SELECT TIMESTAMP WITH TIME ZONE 'epoch' + epoch * INTERVAL '1 second';

SQLite

SELECT datetime(epoch_to_convert, 'unixepoch');
sqlite

or local timezone: SELECT datetime(epoch_to_convert, 'unixepoch', 'localtime');

Oracle PL/SQL

SELECT to_date('01-JAN-1970','dd-mon-yyyy')+(1526357743/60/60/24) from dual
oracle pl/sql

Replace 1526357743 with epoch.

SQL Server

DATEADD(s, epoch, '1970-01-01 00:00:00')
sql server

IBM Informix

SELECT dbinfo('utc_to_datetime',epoch) FROM sysmaster:sysdual;
ibm informix

Microsoft Excel / LibreOffice Calc

=(A1 / 86400) + 25569
microsoft excel / libreoffice calc

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#)
crystal reports

-14400 used for Eastern Standard Time. See Time Zones.

JavaScript

Use the JavaScript Date object
javascript

Tcl/Tk

clock format 1325376000
tcl/tk

Documentation

MATLAB

datestr(719529+TimeInSeconds/86400,'dd-mmm-yyyy HH:MM:SS')
matlab

IBM PureData System for Analytics

select 996673954::int4::abstime::timestamp;
ibm puredata system for analytics

Unix/Linux Shell

date -d @1520000000
unix/linux shell

Replace 1520000000 with your epoch, needs recent version of 'date'. Replace '-d' with '-ud' for GMT/UTC time.

Mac OS X

date -j -r 1520000000
mac os x

PowerShell

Function get-epochDate ($epochDate) { [timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970').AddSeconds($epochDate)) }, then use: get-epochDate 1520000000.
powershell

Works for Windows PowerShell v1 and v2

Other OS's

perl -e "print scalar(localtime(epoch))"
other os's

(If Perl is installed) Replace 'localtime' with 'gmtime' for GMT/UTC time.

Need More Help?

Browse our language-specific guides for more detailed examples and best practices:

Related Guides