Sto scrivendo un gestore getSitemapR
che utilizza yesod-sitemap per generare un file sitemap. Il problema che sto avendo è la conversione di un String
in UTCTime
come definito nel Data.Time.Clock
. La documentazione di eglefino dice che UTCTime
è un'istanza della classe di caratteri Read
, quindi è quello che sto provando. Ecco il mio codice.conversione di una stringa di digitare UTCTime
module Handler.Root where
import Import
import Yesod.Goodies.Gravatar
import Data.Time.Format
import System.Locale
-- This is a handler function for the GET request method on the RootR
-- resource pattern. All of your resource patterns are defined in
-- config/routes
--
-- The majority of the code you will write in Yesod lives in these handler
-- functions. You can spread them across multiple files if you are so
-- inclined, or create a single monolithic file.
getRootR :: Handler RepHtml
getRootR = do
defaultLayout $ do
h2id <- lift newIdent
setTitle "Cloudrr homepage"
$(widgetFile "homepage")
gravatar :: Text -> String
gravatar email =
gravatarImg email go
where
go = GravatarOptions {
gSize = Just (Size 140)
, gDefault = Just (Identicon)
, gForceDefault = ForceDefault False
, gRating = Just (PG)
}
getSitemapR :: Handler RepXml
getSitemapR = do
sitemap [smo RootR]
where
smo = SitemapUrl SitemapR{
sitemapLoc = "http://www.cloudrr.me/sitemap.xml"
, sitemapLastMod = (read "2011-11-19 18:28:r52.607875 UTC")::UTCTime
, sitemapChangeFreq = Weekly
, priority = 0.7
}
Ho guardato attraverso la mia copia di Real World Haskell nel capitolo 20 sulla programmazione di sistemi, ma non copre UTCTime
nella sua esempi di codice, ho cercato di Google con il termine 'Haskell " Converti una stringa in UTCTime "" senza risultati. Ho trovato il seguente Thread nella mailing list Haskell-caffè che non funziona perché SitemapLastMod
non ci vuole un Maybe UTCTime
. Penso che stia facendo un errore davvero stupido qui, ma non sono sicuro, qualcuno potrebbe per favore indicarmi la giusta direzione?
Grazie per il vostro tempo e considerazione.
Stai usando 'read' e si blocca o il codice non viene compilato? Puoi chiaramente indicare dove sei rimasto bloccato? – Tarrasch