8

如果我有这个代码:

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

如何从 中提取分钟和秒组件UTCTime

4

2 回答 2

13

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

所以你可以这样做:

let TimeOfDay hours minutes seconds = timeToTimeOfDay (utctDayTime time)

您还可以使用todMintodSec函数分别从TimeOfDay.

于 2013-03-25T04:16:59.547 回答
2

您可以使用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
于 2013-03-26T06:37:29.997 回答