2011-11-20 14 views
6

टाइप करने के लिए कनवर्ट करना मैं getSitemapR हैंडलर लिख रहा हूं जो साइटमैप फ़ाइल उत्पन्न करने के लिए yesod-sitemap का उपयोग करता है। के रूप में Data.Time.Clock में परिभाषित मुद्दा मैं आ रही UTCTime में एक String परिवर्तित। हेडेक प्रलेखन का कहना है कि UTCTimeRead typeclass का एक उदाहरण है, ताकि मैं क्या कोशिश कर रहा हूँ है। मेरा कोड यहाँ है।एक स्ट्रिंग को 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 
     } 

मैं सिस्टम प्रोग्रामिंग पर 20 अध्याय में असली दुनिया हास्केल की मेरी नकल के माध्यम से देखा है, लेकिन यह UTCTime कवर नहीं करता है यह कोड नमूने है में, मैं 'शब्द का हास्केल के साथ गूगल खोज की है " 'बिना किसी परिणाम के UTCTime करने के लिए "एक स्ट्रिंग में कनवर्ट करें। मैं Haskell कैफे मेलिंग सूची जो काम नहीं करेगा क्योंकि SitemapLastMod एक Maybe UTCTime नहीं उठाता है निम्नलिखित Thread पाया। मुझे लगता है कि मैं एक बहुत बेवकूफ गलती यहाँ बना रही हूँ, लेकिन मुझे यकीन है कि नहीं हूँ, किसी को कृपया सही दिशा में मुझे बिंदु सकता है?

आपके समय और विचार के लिए धन्यवाद।

+2

क्या आप 'read' का उपयोग कर रहे हैं और यह केवल क्रैश हो रहा है, या कोड संकलित नहीं होगा? आप स्पष्ट रूप से उल्लेख कर सकते हैं जहां अटक गया? – Tarrasch

उत्तर

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

लोअर केस r वहाँ नहीं होना चाहिए।

, sitemapLastMod = (read "2011-11-19 18:28:52.607875 UTC")::UTCTime 
संबंधित मुद्दे