Haskell:如何将秒数漂亮地打印为日期和时间?
Posted
技术标签:
【中文标题】Haskell:如何将秒数漂亮地打印为日期和时间?【英文标题】:Haskell: How to pretty print number of seconds as a date and time? 【发布时间】:2016-11-11 04:44:55 【问题描述】:我有一个整数值,即自纪元以来的秒数。我可以将其输出为一个大整数,但我想将其显示为人类可读的日期和时间。
例如:
secToTimestamp :: Int32 -> [Char]
返回类似:
2016-01-01 14:11:11
【问题讨论】:
time
【参考方案1】:
为了有一个简单的基于time
的解决方案(因为time
是用于处理任何时间相关的事实上的模块):
import Data.Time.Clock.POSIX
import Data.Time.Format
secToTimestamp :: Int32 -> String
secToTimestamp = formatTime defaultTimeLocale "%F %X" . posixSecondsToUTCTime . fromIntegral
【讨论】:
【参考方案2】:可能使用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)
【讨论】:
以上是关于Haskell:如何将秒数漂亮地打印为日期和时间?的主要内容,如果未能解决你的问题,请参考以下文章