【发布时间】:2013-03-24 16:40:31
【问题描述】:
我一直在寻找一种简单的方法来将当前时间(可能是自午夜以来的秒数,或小时、分钟、秒)转换为 int。 谁能指出我正确的方向?我查看了库,但没有成功。
【问题讨论】:
-
我没有用 Haskell 编程,但一直在寻找其他语言的类似信息。 toSeconds 怎么样? hackage.haskell.org/packages/archive/datetime/0.1/doc/html/…
我一直在寻找一种简单的方法来将当前时间(可能是自午夜以来的秒数,或小时、分钟、秒)转换为 int。 谁能指出我正确的方向?我查看了库,但没有成功。
【问题讨论】:
以Int 的形式获取自午夜以来的时间非常简单:
import Data.Time.Clock
main = do
currTime <- getCurrentTime
let timed = floor $ utctDayTime currTime :: Int
print timed
对于踢腿和咯咯笑,这里有一个快速功能
integralTime :: (Integral a) => IO a
integralTime = getCurrentTime >>= return.floor.utctDayTime
这是因为TimeDiff(它是一个RealFrac 实例)可以floored 为一个积分。
【讨论】:
Data.Time.Clock(尽管很容易使用Hoogled)。
toRational 不是必需的:floor 在任何 RealFrac 参数上已经是多态的。
floor.toRational
在搜索“haskell datetime”时,我在 Google 上的第一次点击与 Tim 给出的链接相同。您可以通过getCurrentTime :: IO DateTime 获取当前时间,然后通过diffUTCTime :: UTCTime -> UTCTime -> NominalDiffTime 计算差异(以秒为单位)。
http://hackage.haskell.org/packages/archive/datetime/0.1/doc/html/Data-DateTime.html http://hackage.haskell.org/packages/archive/time/1.1.4/doc/html/Data-Time-Clock.html#t:UTCTime
【讨论】: