[erlang-questions] calendar now_to_universal_time/1 vs. universal_time/0

Ryan Zezeski <>
Mon Sep 27 21:15:45 CEST 2010

On Mon, Sep 27, 2010 at 1:00 PM, Ulf Wiger

> On 27 Sep 2010, at 18:25, Pierpaolo Bernardi wrote:
> > On Mon, Sep 27, 2010 at 18:21, Ryan Zezeski <> wrote:
> >
> >> This is, essentially, the question I'm asking.  Should I prefer one over
> the
> >> other for *any* reason?  Right now, I prefer universal_time because it's
> >> less typing :)
> >
> > A perfectly good reason.  It's also a tiny bit clearer.
> erlang:now() is actually a bit different from the calendar clock.
> It can, by definition, never jump backwards.
> It will also attempt not to make large adjustments of any kind, so if it
> detects
> that there is a large difference between the system clock and the
> erlang:now()
> clock, the now() clock will speed up or slow down 1% in order to converge
> with the actual time, without disturbing timeouts etc. which rely on now()
> to
> provide a smooth representation of system real-time.
> In other words, erlang:universal_time/0 will return the actual time,
> whereas
> erlang:now() may, under certain circumstances, differ quite significantly
> from actual time.
Thanks Ulf, but I was actually referring to calendar:universal_time/0.  I
did not know of the existence of erlang:universtaltime/0 until you pointed
it out just now.  Now I'm curious, what is the difference, if any, between
these two?  Is their existence just a case of history?

Another question, both functions claim that they return UTC "if available"
otherwise they return local time.  In what case is UTC not available?


More information about the erlang-questions mailing list