Logo

Programming-Idioms

  • Groovy
  • Haskell

Idiom #98 Epoch seconds to date object

Convert a timestamp ts (number of seconds in epoch-time) to a date with time d. E.g. 0 -> 1970-01-01 00:00:00

import Data.Fixed (Fixed(MkFixed))
import Data.Time.Clock (secondsToNominalDiffTime)
import Data.Time.Clock.POSIX (posixSecondsToUTCTime)
d = posixSecondsToUTCTime . secondsToNominalDiffTime . MkFixed $ toInteger ts

d has type UTCTime. This code works for any Integral ts. If ts is an Integer, toInteger isn't required.
#include <chrono>
#include <ctime>
std::time_t d = std::chrono::system_clock::to_time_t(ts);

ts is a time_point (epoch)

New implementation...
< >
elbrujohalcon