I am signing web requests, and as part of the query string, I need to include
oauth_timestamp=123456789 where the 123456789 is the nominal time since 1970-01-01 00:00 UTC.
I have been using POSIXTime for its representation, which is just a type alias for NominalDiffTime.
I am having problems when I want to convert the POSIXTime / NominalDiffTime to Text so that I can add it to the query string items collection.
The problem stems from the fact that the constructor for NominalDiffTime is private, and so I cannot extract the actual number.
Even the hacky way of using show will append an "s" generating 123456789s.
Is there a simple way of extracting the actual number from the NominalDiffTime?
This might qualify as an example of typeclasses making APIs more esoteric than they have to be: NominalDiffTime implements RealFrac, the typeclass of arbitrary-precision fractions. As a result, the floor function is available to you:
λ> import Data.Time.Clock.POSIX
λ> pt <- getPOSIXTime
λ> pt
1458787669.804632s
λ> toRational pt
182348458725579 % 125000
λ> floor pt :: Int
1458787669
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With