如果我有这段代码:
let time = read "2013-02-03 17:00:07.687" :: UTCTime
如何从UTCTime
?
答案 0 :(得分:12)
UTCTime
有两个组成部分:一天和DiffTime
。您可以使用DiffTime
或模式匹配获取utctDayTime
。在那里,您可以使用TimeOfDay
将其转换为timeToTimeOfDay
。然后,您可以只对TimeOfDay
进行模式匹配,以获得小时,分钟和秒。
所以你可以这样做:
let TimeOfDay hours minutes seconds = timeToTimeOfDay (utctDayTime time)
您还可以使用todMin
和todSec
函数分别从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