[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
<>wrote:

>
> 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?

-Ryan


More information about the erlang-questions mailing list