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