2013-03-25 7 views

Odpowiedz

11

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.

2

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 
+0

Dzięki za to, chciałem ten pakiet wcześniej, ale nie wiedział o jego istnieniu! – singpolyma

Powiązane problemy