Текст дружественный способ разбора текстовых меток времени в Haskell - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть несколько временных меток (с дополнительным текстом вокруг них), которые я анализирую.Я понимаю, что может анализировать строки времени, как правило, с помощью Data.Time.

Однако после преобразования даты и времени из текста в строку с распаковкой я не понимаю, как анализировать этоошибка:

{-# LANGUAGE DeriveGeneric,  OverloadedStrings #-}

import Data.Time.Parse
import Data.Text as T

myDate = "D2017/01/01" 

:t parseTimeOrError

ptime :: Text -> UTCTime 
ptime dt = parseTimeOrError True defaultTimeLocale "D%Y/%d/%M" (T.unpack dt) :: UTCTime
-- here the T.unpack is because the :t tells us parseTimeOrError takes a string
-- not a Text.

myUTC <- ptime myDate

print myUTC

Я получаю

parseTimeOrError :: forall t. ParseTime t => Bool -> TimeLocale -> String -> String -> t
<interactive>:1:10: error:
    • Couldn't match expected type ‘IO a0’ with actual type ‘UTCTime’
    • In the first argument of ‘GHC.GHCi.ghciStepIO :: forall a. IO a -> IO a’, namely ‘(ptime myDate)’
      In a stmt of an interactive GHCi command: myUTC <- GHC.GHCi.ghciStepIO :: forall a. IO a -> IO a (ptime myDate)

Что я делаю не так?

1 Ответ

0 голосов
/ 25 апреля 2019

@ Дартфеннек был прав.Замените

myUTC <- ptime myDate

на

myUTC = ptime myDate

Я бы не понял это из вышеприведенной ошибки.Это не связано с Text или Data.Time.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...