0
如何將當前日期作爲Day
類型存儲在記錄中?這是做這件事的正確方法嗎?我想這樣做是爲了能夠在應用程序中操作日期,還可以使用Opaleye或Esqueleto將它們存儲在數據庫中。如何僅將當前日期作爲日類型存儲在記錄中?
我有這樣的:
import Data.Time
import Data.Time.Format
data User = User
{ userId :: Int
, name :: Text
, loginDate :: Day
} deriving (Eq, Show)
currentDay :: Day
currentDay = utctDay <$> getCurrentTime ???
users :: [User]
users = [ User 1 "A" currentDay
, User 2 "B" currentDay
]
但currentDay
類型是IO Day
。我怎樣才能得到它只有Day
?我猜這是不可能的,而不會破壞類型安全,但我不確定。
我的loginDate
的類型更改爲IO Day
但後來我就不能推導Eq
和Show
,因此無法同時使用的僕人使用deriveJSON
。如果我將currentDay
的類型更改爲IO Day
和users
至IO [User]
,那麼我不能使用Servant類型。
但我不能跟傭人使用IO單子,可以嗎? – OneEyeQuestion
當然可以。你想把你的代碼放在哪裏?通常使用'liftIO'是你所需要的。 – ErikR
你可以結合其中一個在IO monad('IO [User]')而另一個不是('[Friend]')的兩個端點嗎? – OneEyeQuestion