如何从UTCTime中提取特定时间组件?

时间:2013-03-25 03:58:52

标签: haskell

如果我有这段代码:

let time = read "2013-02-03 17:00:07.687" :: UTCTime

如何从UTCTime

中提取分钟和秒组件

2 个答案:

答案 0 :(得分:12)

UTCTime有两个组成部分:一天和DiffTime。您可以使用DiffTime或模式匹配获取utctDayTime。在那里,您可以使用TimeOfDay将其转换为timeToTimeOfDay。然后,您可以只对TimeOfDay进行模式匹配,以获得小时,分钟和秒。

所以你可以这样做:

let TimeOfDay hours minutes seconds = timeToTimeOfDay (utctDayTime time)

您还可以使用todMintodSec函数分别从TimeOfDay中获取分钟和秒数。

答案 1 :(得分:2)

您可以使用time-lens包,这样可以更轻松地进行时间和日期操作。 E.g。

> let time = read "2013-02-03 17:00:07.687" :: UTCTime
> getL seconds time
7.687000000000

如果您导入Data.Lens.Common,则还有getL的中缀版本:

> time ^. minutes
0