@@ -6,12 +6,14 @@ import Data.Bits
66import Data.Text (Text )
77import qualified Data.Text as T
88import qualified Data.Text.IO as T
9- import Data.Time
109import System.Environment
1110import qualified Data.Map.Strict as M
1211import Control.Applicative
12+ import Data.AffineSpace ((.-^) )
1313import Data.Char (isSpace , digitToInt , isUpper )
1414import Data.List (foldl' )
15+ import Control.Lens
16+ import Data.Thyme
1517
1618import Data.Attoparsec.Text
1719
@@ -64,13 +66,13 @@ timestamp = do
6466 h <- scientific <* char ' :'
6567 mi <- scientific <* char ' :'
6668 s <- scientific <* char ' +'
67- let day = fromGregorian y m d
68- difftime = h * 3600 + mi * 60 + s
69- tm = UTCTime day ( realToFrac difftime)
69+ let day = YearMonthDay y m d ^. from gregorian
70+ difftime = fromSeconds $ ( h * 3600 + mi * 60 ) + s
71+ tm = UTCTime day difftime ^. from utcTime
7072 tz <- takeWhile1 isUpper <* skipSpace
7173 return $ case tz of
72- " CEST" -> addUTCTime ( - 7200 ) tm
73- " CET" -> addUTCTime ( - 3600 ) tm
74+ " CEST" -> tm .-^ fromSeconds ( 7200 :: Int )
75+ " CET" -> tm .-^ fromSeconds ( 3600 :: Int )
7476 _ -> tm
7577
7678filetype :: Parser FileType
0 commit comments