如果我有这个代码:
let time = read "2013-02-03 17:00:07.687" :: UTCTime
如何从 中提取分钟和秒组件UTCTime
?
AUTCTime
有两个组成部分:一天和一个DiffTime
。您可以DiffTime
使用utctDayTime
或通过模式匹配来获取。从那里,您可以将其转换为TimeOfDay
using 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