Looking for a fast, accurate, and easy-to-use Unix timestamp converter? This Epoch time conversion tool helps you seamlessly convert Unix time to human-readable date formats — and vice versa — in seconds, milliseconds, and microseconds.
Epoch & Date Time Converter
Unix time — also known as the Unix epoch, POSIX time, or Unix timestamp — represents the number of seconds that have passed since January 1, 1970, at midnight UTC (00:00:00Z). This starting point is referred to as Unix time 0 and is commonly expressed in ISO 8601 format as 1970-01-01T00:00:00Z.
Importantly, Unix time does not account for leap seconds.
While the term “epoch” technically refers to that exact starting moment, it’s often used more broadly to mean Unix time in general.
🔢 Common Time Units
| Time Unit | Equivalent in Seconds |
|---|---|
| 1 Minute | 60 seconds |
| 1 Hour | 3,600 seconds |
| 1 Day | 86,400 seconds |
| 1 Week | 604,800 seconds |
| 1 Month (avg) | 2,629,743 seconds |
| 1 Year (avg) | 31,556,926 seconds |
What Is a Unix Timestamp?
A Unix timestamp, also called epoch time or POSIX time, is the number of seconds that have passed since January 1, 1970 at 00:00:00 UTC. It’s widely used in programming, databases, operating systems, and APIs to represent a point in time in a standardized format.
Example:
Unix Time: 1718131200 → Human Time: 2024-06-12 00:00:00 UTC
Unix timestamp converter online
Convert epoch to date
Convert date to Unix time
Epoch time converter tool
Unix time to human-readable
13-digit timestamp to date
Epoch milliseconds to datetime
POSIX time converter
Year 2038 problem solution
Free Unix timestamp conversion tool
How to get the current epoch time in …
| PHP | time() More PHP |
| Python | import time; time.time() Source |
| Ruby | Time.now (or Time.new). To display the epoch: Time.now.to_i |
| Perl | time More Perl |
| Java | long epoch = System.currentTimeMillis()/1000; Returns epoch in seconds. |
| C# | DateTimeOffset.Now.ToUnixTimeSeconds() (.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]; (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(); |
| Lua | epoch = os.time([date]) |
| VBScript/ASP | See the examples |
| AutoIT | _DateDiff('s', "1970/01/01 00:00:00", _NowCalc()) |
| Delphi | Epoch := DateTimetoUnix(Now); Tested in Delphi 2010. |
| Dart | DateTime.now().microsecondsSinceEpoch |
| R | as.numeric(Sys.time()) |
| Erlang/OTP | erlang:system_time(seconds). (version 18+), older versions: calendar:datetime_to_gregorian_seconds(calendar:universal_time())-719528*24*3600. |
| MySQL | SELECT unix_timestamp(now()) More MySQL examples |
| PostgreSQL | SELECT extract(epoch FROM now()); |
| SQLite | SELECT strftime('%s', 'now'); |
| Oracle PL/SQL | SELECT (CAST(SYS_EXTRACT_UTC(SYSTIMESTAMP) AS DATE) - TO_DATE('01/01/1970','DD/MM/YYYY')) * 24 * 60 * 60 FROM DUAL; |
| SQL Server | SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE()) |
| IBM Informix | SELECT dbinfo('utc_current') FROM sysmaster:sysdual; |
| JavaScript | Math.floor(new Date().getTime()/1000.0) The getTime method returns the time in milliseconds. |
| Visual FoxPro | DATETIME() - {^1970/01/01 00:00:00} Warning: time zones not handled correctly |
| Go | time.Now().Unix() More Go |
| Adobe ColdFusion | <cfset epochTime = left(getTickcount(), 10)> |
| Tcl/Tk | clock seconds |
| Unix/Linux Shell | date +%s |
| Solaris | /usr/bin/nawk 'BEGIN {print srand()}' 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)) |
| 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 2018") (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')) |
| 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; Timestamp in seconds, remove ‘/1000’ for milliseconds. |
| VBScript/ASP | DateDiff("s", "01/01/1970 00:00:00", time field) More ASP |
| 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("YYYY-MM-dd HH:mm:ss", tz = "GMT", origin="1970-01-01")) The origin parameter is optional |
| Go | Example code |
| Rust | SystemTime::now().duration_since(SystemTime::UNIX_EPOCH) SystemTime documentation |
| Adobe ColdFusion | int(parseDateTime(datetime).getTime()/1000); |
| 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 '2018-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, more PHP examples |
| Python | import time; time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime(epoch)) 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) |
| C# | private string epoch2string(int 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)); Epoch in seconds, remove ‘*1000’ for milliseconds. |
| Lua | datestring = os.date([format[,epoch]]) |
| VBScript/ASP | DateAdd("s", epoch, "01/01/1970 00:00:00") More ASP |
| AutoIT | _DateAdd("s", $EpochSeconds , "1970/01/01 00:00:00") |
| Dart | DateTime.fromMicrosecondsSinceEpoch(epoch) |
| 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") |
| Go | Example code |
| Adobe ColdFusion | DateAdd("s",epoch,"1/1/1970"); |
| 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) More MySQL |
| PostgreSQL | PostgreSQL version 8.1 and higher: SELECT to_timestamp(epoch); Source 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')+(1526357743/60/60/24) from dualReplace 1526357743 with epoch. |
| SQL Server | DATEADD(s, epoch, '1970-01-01 00:00:00') |
| IBM Informix | SELECT dbinfo('utc_to_datetime',epoch) FROM sysmaster:sysdual; |
| Microsoft Excel / LibreOffice Calc | =(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 Documentation |
| MATLAB | datestr(719529+TimeInSeconds/86400,'dd-mmm-yyyy HH:MM:SS') |
| IBM PureData System for Analytics | select 996673954::int4::abstime::timestamp; |
| Unix/Linux Shell | date -d @1520000000 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 |
| PowerShell | Function get-epochDate ($epochDate) { [timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970').AddSeconds($epochDate)) }, then use: get-epochDate 1520000000. 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. |

