所以,设置是我有时间,以秒为单位,从纪元开始,我想把它变成我能真正理解的日期。我如何在 Haskell 中做到这一点?如果可能,我将如何从这种新编码中提取天/小时/分钟?
问问题
2034 次
2 回答
9
Data.Time.Clock.POSIX具有posixSecondsToUTCTime
(您可以将另一种数字类型转换为预期的输入POSIXTime
)realToFrac
。
Data.Time.Calendar有很多你需要从中提取日、月等的东西,Day
它们构成了 的一部分UTCTime
,包的其余部分还有其他有用的实用程序。
例子:
Prelude> import Data.Time.Format.ISO8601
Prelude Data.Time.Format.ISO8601> import Data.Time.Clock.POSIX
Prelude Data.Time.Format.ISO8601 Data.Time.Clock.POSIX> iso8601Show $ posixSecondsToUTCTime $ 100
"1970-01-01T00:01:40Z"
于 2012-10-16T14:12:18.870 回答
4
使用默认安装的时间库:
import Data.Time.Clock.POSIX
import Data.Time.Format
import System.Locale
main = print $ formatTime defaultTimeLocale "%c" $ posixSecondsToUTCTime 10
该库具有广泛的日期操作功能(例如日期减法,获取组件,如日月等)。如果您想提取组件只是为了将它们转换为字符串,您可以使用formatTime
.
于 2012-10-16T14:19:52.143 回答