2014-12-31 11 views
9

Próbuję analizować i wykonać operacje na znaczniki czasu, takich jak ten:Haskell Czas milisekund typ holdingowe

"01:46:22,041" 

co oznacza: 1 godzina, 46 minut, 22 sekund i 41 milisekund.

Nie wiem od czego zacząć. Wszystkie istniejące typy danych zawierają datę. W moim przypadku wystarczy dodać/odjąć od znacznika czasu, a następnie wydrukować go w tym samym formacie.

Oczywiście nie chcę pisać własnego kalkulatora, jeśli jest on wbudowany. Czy istnieje jakiś standardowy sposób rozwiązania tego problemu w Haskell?

Odpowiedz

6

Użyj Data.Time.Clock.DiffTime. Aby przeanalizować i sformatować, użyj funkcji z Data.Time.Format.

+0

Tom, czy możesz podać szybki przykład? Nie mogę połączyć kropek. – ddccffvv

+0

Muszę przeprosić, ponieważ z jakiegoś powodu wydaje się, że 'DiffTime' nie może być analizowany ani formatowany. Otworzyłem błąd: https://github.com/haskell/time/issues/22 –

+0

Ciekawe, zobaczmy, co się stanie. Na razie to rozwiążę. – ddccffvv