How do I get the current time in Elm?

z5h picture z5h · Apr 5, 2015 · Viewed 10.9k times · Source

I'm running elm-repl to play around with the language.

I'd like to see what the current time is. How would I do that? It doesn't appear to be possible with the current library. Why is that?


EDIT: I made a package to help with this. http://package.elm-lang.org/packages/z5h/time-app

This was asked around elm 0.15 - things are different in elm 0.17 & 0.18: see How do I get the current time in Elm 0.17/0.18?

Answer

Simon H picture Simon H · Jul 13, 2016

Update for 0.19 It is not possible to get the current time using the standard library.. You need to use elm/time. As with 0.18, all you need is a command and Msg to handle the result

type Msg
    = OnTime Time.Posix 

getTime : Cmd Msg
getTime = 
    Task.perform OnTime Time.now 

Update for 0.18 This has got simpler again. Now all you need is a command and Msg to handle the result

type Msg
    = OnTime Time 

getTime : Cmd Msg
getTime = 
    Task.perform OnTime Time.now 

See this Ellie

Original answer

With 0.17, this got a whole lot easier. There is now a Task in the Time library. So for example, we now have:

Time.now
|> Task.Perform NoOp CurrentTime