Jeśli mam ten kod:Jak mogę wyodrębnić określone składniki czasu z UTCTime?
let time = read "2013-02-03 17:00:07.687" :: UTCTime
Jak można wyodrębnić minutach i sekundach składników poza UTCTime
?
Jeśli mam ten kod:Jak mogę wyodrębnić określone składniki czasu z UTCTime?
let time = read "2013-02-03 17:00:07.687" :: UTCTime
Jak można wyodrębnić minutach i sekundach składników poza UTCTime
?
A UTCTime
ma dwa składniki: jeden dzień i DiffTime
. Możesz uzyskać DiffTime
używając utctDayTime
lub dopasowując do wzorca. Stamtąd możesz przekonwertować go na TimeOfDay
, używając timeToTimeOfDay
. Możesz wtedy tylko dopasować wzór do TimeOfDay
, aby uzyskać godziny, minuty i sekundy.
Więc można to zrobić:
let TimeOfDay hours minutes seconds = timeToTimeOfDay (utctDayTime time)
Można również użyć funkcji todMin
i todSec
uzyskać minuty i sekundy odpowiednio z TimeOfDay
.
Można skorzystać z pakietu time-lens, który znacznie ułatwia manipulowanie datą i godziną. Na przykład.
> let time = read "2013-02-03 17:00:07.687" :: UTCTime
> getL seconds time
7.687000000000
Jeśli importujesz Data.Lens.Common
, istnieje również wersja infix z getL
:
> time ^. minutes
0
Dzięki za to, chciałem ten pakiet wcześniej, ale nie wiedział o jego istnieniu! – singpolyma