2013-03-15 9 views
8

W pakiecie time mamy typ ZonedTime która reprezentuje LocalTime produktem localDay :: Day i localTimeOfDay :: TimeOfDay. LocalTime ma instancje dla Eq i Ord, ale ZonedTime nie. Wydaje mi się, że powinno się porównywać z bezwzględną ramką odniesienia - przynajmniej tyle, ile może być ZonedTime s.Dlaczego nie „ZonedTime” mieć „Eq” lub „” ORD instancji

Dlaczego instancje ZonedTime mają również instancje Eq i Ord?

Warto zauważyć, że time przepisać thyme faktycznie ma Eq i Ord instancji, choć wolałbym nie używać niestandardowych rodzajów czas, chyba potrzebne.

Odpowiedz

5

Mogę tylko spekulować, że powodem jest to, że nie jest do końca jasne, jak czasy, które mają różne strefy dołączone powinny być porównywane, a to jest dość łatwe do konwertowania ich do UTCTime użyciu zonedTimeToUTC i porównać wyniki, czy to, co się ma.

+0

Przypuszczam, że właśnie założyłem równość obserwacyjną w ramach "zonedTimeToUTC", tak. Zauważyłem też, że "tymianek" po prostu używa wewnętrznej równości i zarówno 'czas' i' tymianek 'definiują wewnętrzną równość względem 'Strefy czasowej', aby mieć zarówno dokładnie identyczne przesunięcia, jak i nazwy. –

+0

Niepewność tutaj jest całkiem dobrą odpowiedzią. Dzięki. –

0

Być może wynika to z oszczędności na świetle dziennym? Czasami w Wielkiej Brytanii = czas francuski, ale w innych porach roku różnica wynosi 1 godzinę ...

Powiązane problemy