2011-11-20 22 views
6

Bir site haritası dosyası oluşturmak için yesod-siteemap kullanan bir getSitemapR işleyici yazıyorum. Yaşadığım sorun, Data.Time.Clock'da tanımlandığı gibi String'u UTCTime'a dönüştürmektir. Mezgitname belgelerine göre, UTCTime, Read tipinin bir örneğidir, yani denediğim şey budur. İşte benim kodum. "Ben terimi 'Haskell ile google arama yaptık,Bir dize UTCTime dönüştürmek

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 
     } 

Ben sistemleri programlama bölüm 20'de Gerçek Dünya Haskell benim kopya inceledim ama kod örnekleri var o UTCTime kapsamaz Sonuçsız bir Dize UTCTime "'dönüştürün. SitemapLastMod bir Maybe UTCTime almaz çünkü çalışmayan haskell-cafe posta listesinde aşağıdaki Thread bulundu. Burada gerçekten aptalca bir hata yaptığımı düşünüyorum, ama emin değilim, birisi bana doğru yönde işaret edebilir mi?

Zaman ayırdığınız ve düşündüğünüz için teşekkür ederiz.

+2

Nereye takıldığını açıkça söyleyebilir misin? – Tarrasch

cevap

7
, sitemapLastMod = (read "2011-11-19 18:28:r52.607875 UTC")::UTCTime 

küçük harf r olmamalıdır. Okuma okunuyor ve sadece çöküyor, ya da kod derleme değil mi?

, sitemapLastMod = (read "2011-11-19 18:28:52.607875 UTC")::UTCTime 
İlgili konular