如果我有这个代码:
let time = read "2013-02-03 17:00:07.687" :: UTCTime
如何从 中提取分钟和秒组件UTCTime?
AUTCTime有两个组成部分:一天和一个DiffTime。您可以DiffTime使用utctDayTime或通过模式匹配来获取。从那里,您可以将其转换为TimeOfDayusing timeToTimeOfDay。然后,您只需对 进行模式匹配TimeOfDay即可获得小时、分钟和秒。
所以你可以这样做:
let TimeOfDay hours minutes seconds = timeToTimeOfDay (utctDayTime time)
您还可以使用todMin和todSec函数分别从TimeOfDay.
您可以使用time-lens包,它使时间和日期的操作更加容易。例如
> let time = read "2013-02-03 17:00:07.687" :: UTCTime
> getL seconds time
7.687000000000
如果你 import Data.Lens.Common,还有一个中缀版本getL:
> time ^. minutes
0