6

所以,设置是我有时间,以秒为单位,从纪元开始,我想把它变成我能真正理解的日期。我如何在 Haskell 中做到这一点?如果可能,我将如何从这种新编码中提取天/小时/分钟?

4

2 回答 2

9

Data.Time.Clock.POSIX具有posixSecondsToUTCTime(您可以将另一种数字类型转换为预期的输入POSIXTimerealToFrac

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 回答