我有一个整数值,它是从纪元开始的秒数。我可以将其输出为一个大整数,但我希望将其显示为人类可读的日期和时间。
例如:
secToTimestamp :: Int32 -> [Char]它返回类似如下的内容:
2016-01-01 14:11:11发布于 2016-11-11 17:44:38
为了拥有一个简单的基于time的解决方案(因为time是操作任何与时间相关的东西的事实上的模块):
import Data.Time.Clock.POSIX
import Data.Time.Format
secToTimestamp :: Int32 -> String
secToTimestamp = formatTime defaultTimeLocale "%F %X" . posixSecondsToUTCTime . fromIntegral发布于 2016-11-11 16:11:55
可能使用unix-time模块
{-# LANGUAGE OverloadedStrings #-}
import Prelude
import qualified Data.ByteString.Char8 as B
import Data.UnixTime
import Data.Int
import Data.Functor
secToTimestampGMT :: Int32 -> [Char]
secToTimestampGMT t = B.unpack $ formatUnixTimeGMT "%Y-%m-%d %H-%M-%S" $ UnixTime (fromIntegral t) 0
secToTimestamp :: Int32 -> IO [Char]
secToTimestamp t = B.unpack <$> (formatUnixTime "%Y-%m-%d %H-%M-%S" $ UnixTime (fromIntegral t) 0)https://stackoverflow.com/questions/40541247
复制相似问题