UTC date
UTC & local time
based on your
device/system time
System time vs Server time
based on
server time

local date

UTC time

local time

UNIX time


Convert milliseconds
to UTC time & date:
to local time & date:
Date-Time Calendar Milliseconds since Epoch · Julian Date · HTTP format · ISO 8601 · GPS time
Epochs & standards for reference. Convert date / time formats on the fly. Timestamps in milliseconds and other units.
Tutorials System.currentTimeMillis() · What is a Unix Timestamp · What is UTC
Timezones, Unix timestamps in milliseconds & UTC. Java programming examples and explanations.
Sync Service Minutes since Epoch
Free synchronization web service. 3rd party time authority. Used in games, trial software, internet capable controllers, etc.
Standards Client-Centric Time · Persistence of Time
Software engineering standards for time-keeping. Architectural specifications developed for 3rd party reference and compliance.
How to get the current time in milliseconds
Methods to get the time in milliseconds since the UNIX epoch (January 1, 1970 00:00:00 UTC) in various programming languages
ActionScript (new Date()).time
C++ std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count()
C#.NET DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
Clojure (System/currentTimeMillis)
Dart DateTime.now().millisecondsSinceEpoch
Erlang erlang:system_time(millisecond)
Excel / Google Sheets* = (NOW() - CELL_WITH_TIMEZONE_OFFSET_IN_HOURS/24 - DATE(1970,1,1)) * 86400000
Go / Golang time.Now().UnixNano() / 1000000
Hive* unix_timestamp() * 1000
Java / Groovy / Kotlin System.currentTimeMillis()
Javascript Date.now() // or: new Date().getTime()
Objective-C (long long)([[NSDate date] timeIntervalSince1970] * 1000.0)
OCaml (1000.0 *. Unix.gettimeofday ())
Oracle PL/SQL* SELECT (SYSDATE-CAST(TO_TIMESTAMP_TZ('01-01-1970 00:00:00+00:00',
'DD-MM-YYYY HH24:MI:SS TZH:TZM') as date)) * 24 * 60 * 60 * 1000 FROM DUAL
Perl use Time::HiRes qw(gettimeofday); print gettimeofday;
PHP round(microtime(true) * 1000)
PostgreSQL extract(epoch FROM now()) * 1000
PowerShell [DateTimeOffset]::UtcNow.ToUnixTimeMilliseconds()
Python int(round(time.time() * 1000))
Qt QDateTime::currentMSecsSinceEpoch()
R* as.numeric(Sys.time()) * 1000
Ruby (Time.now.to_f * 1000).floor
Rust std::time::SystemTime::now().duration_since(UNIX_EPOCH).expect("error")
Scala val timestamp: Long = System.currentTimeMillis
SQL Server DATEDIFF(ms, '1970-01-01 00:00:00', GETUTCDATE())
SQLite* STRFTIME('%s', 'now') * 1000
Swift* let currentTime = NSDate().timeIntervalSince1970 * 1000
VBScript / ASP offsetInMillis = 60000 *
WScript.Echo DateDiff("s", "01/01/1970 00:00:00", Now()) * 1000 - offsetInMillis + Timer * 1000 mod 1000
Beta / Upcoming Technologies
Suggest languages / frameworks / APIs for getting the UNIX time in milliseconds here
CockroachDB select extract(epoch_nanoseconds from now()) / 1000000
* starred examples might not reach millisecond accuracy but the value is multiplied to reach millisecond range

Time & Space
Scientific facts as well as controversies surrounding time keeping
Millis is the popular abbreviation for milliseconds. The formal one would be ms. Another one is millisecs but this is very rare.
Leap seconds
Leap seconds are one-second adjustments added to the UTC time to synchronize it with solar time. Leap seconds tend to cause trouble with software. For example, on June 30, 2012 you had the time 23:59:60. Google uses a technique called leap smear on its servers, which, instead of adding an extra second, extend seconds prior to the end of the day by a few milliseconds each so that the day will last 1000 milliseconds longer.
Theory of Relativity
The Special and General theories of Relativity are taken into account by GPS receivers (found in planes, cars and mobile phones) and Earth-orbiting satellites to synchronize their time within a 20-30 nanosecond range. This happens because satellites are in motion relative to the planet so the observers on the planet will perceive time is passing more slowly for the satellites.
UTC vs. GMT simple take
UTC stands for Coordinated Universal Time. GMT stands for Greenwich Mean Time. UTC is a universal time keeping standard by itself. A time expressed in UTC is essentially the time on the whole planet. A time expressed in GMT is the time in the timezone of the Greenwich meridian. In current computer science problems (and probably most scientific ones) UTC and GMT expressed in absolute value happen to have identical values so they have been used interchangeably.
UTC vs. GMT complex take
Literature and history are a bit ambiguous. UTC essentially appeared in 1960, GMT being the ‘main thing’ until then. Unlike GMT which is based on solar time and originally calculated a second as a fraction of the time it takes for the Earth to make a full rotation around its axis, UTC calculates a second as “the duration of 9192631770 periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of the cesium 133 atom”. UTC’s second is far more precise than GMT's original second. In 1972 leap seconds were introduced to synchronize UTC time with solar time. These 2 turning points (different definition of a second and the introduction of leap seconds) ‘forced’ GMT to be the same as UTC based on what seemed a gradual, tacit convention. If you were to calculate true GMT today i would see it based on its original definition of 1 second = 1/86400 days and this would for sure return a different absolute value than what UTC gives us. From this point of view the name “GMT” seems deprecated, but kept around for backward compatibility, traditional timezone based representation of time and sometimes legal reasons.
UTC vs. UT1
UT1 is the most precise form of universal time. It's computed using observations of quasars in outer space (which make up the International Celestial Reference Frame) and of distances between Earth and its satellites - natural (Moon) and artificial. UTC only tries to approximate UT1: it is kept within 0.9 seconds of UT1 by employing leap seconds.
26 hour timezone span
Intuition tells us timezones should probably span from UTC+0 to UTC-12 to the west of the Greenwhich Meridian and from UTC+0 to UTC+12 to the east. In fact they can reach UTC+14. UTC+14 is Christmas Island's (Kiribati) time all year round and Samoa's daylight saving time during southern hemisphere summer. Therefore the maximum difference between 2 local times on Earth is 26 hours.
Common Epochs & Date/Time Formats
the most common is of course the UNIX epoch but some systems and services have different epochs
UNIX epoch ms since January 1, 1970
LDAP / NT epoch ticks since January 1, 1601
NTP epoch ms since January 1, 1900
.NET MinValue ticks since January 1, 0001
Mac OS X ms since January 1, 2001
ISO 8601
* 1 tick = 0.0001 milliseconds = 100 nanoseconds
Genesis & History
This site provides the current time in milliseconds elapsed since the UNIX epoch (Jan 1, 1970) as well as in other common formats including local / UTC time comparisons. You can also convert milliseconds to date & time and the other way around. More importantly, this site offers a time navigation service for human users and a time authority service for programmatic usage.

The "current millis" story started with me debugging my Android application. In Android you tell an alarm when to come up by passing a simple number. This number has to be so large that it can encompass all the time passed since midnight January 1st, 1970 but sufficiently small that it can fit into existing data structures and keep going enough time in the future. Precision: millisecond. Why 1970 you ask? It's just a convention: it was the roundest most recent year to the point in time people actually started thinking about a universal measure of time.

As i was debugging i needed something to tell me what the current time in ms is. Since a program was already running, rather than just inspecting Java's System.currentTimeMillis() or running a program that shows it to me, i figured i'll open a web page that shows it. There was nothing like it in the search results. The funniest result i saw was telling me the local time in Millis, Massachusetts. I couldn't believe there isn't a site that does such a simple thing. I wrote currentmillis.com and hit enter. My ISP's page popped up telling me there is no such page. I then checked with my hosting provider and it turned out this incredibly simple domain was available. So i bought it and turned it into a single-serving website which shows, you guessed it, the current time in ms.

In my opinion this is the most reasonably precise measuring standard ever. And timing isn't the easiest problem to solve, especially in a world where GPS has to take into account Einstein's theory of relativity and leap seconds have to be added from time to time to keep UTC (Coordinated Universal Time) in sync with solar time. The irony is i probably would have never found out that the last second of June 30, 2012 was 23:59:60 if i wouldn't have bought currentmillis.com. It's strange that not so long ago on the cosmic scale, John Henry Belville and Ruth Belville were "selling" time to customers by setting a master watch to Greenwich Mean Time and then allowing others to adjust their own watches according to the Belville master watch. At one point there was even a telegraphic time signal service, developed by the Standard Time Company. The internet has changed the propagation of information (including time) quite a lot, but the basic principle still stands: recognized 3rd party authorities (i.e. time providers), a principle which stands in many types of protocols, not just time-based.

My goal for this website is that programmers all around the world know: when you want to see the current UTC time or the current time in ms (or in other common formats), you can do so easily at currentmillis.com

Countdown · Egg-timer · Clock · Uptime
Online time tools customizable via parameters in the URL
Convert local YYYY / MM / DD
and HH : MM : SS
to milliseconds since epoch: