我有一个初学者的问题,关于Haskell中的日期和String
。
我需要以String
的形式获取日期的一部分(年、月或日)。我发现,如果我在GHCi中写下以下两行:
Prelude> now <- getCurrentTime
Prelude> let mon = formatTime defaultTimeLocale "%B" now
那么mon
的类型为String
。然而,我无法将其放入函数中。例如,我尝试了以下内容:
getCurrMonth = do
now <- getCurrentTime
putStrLn (formatTime defaultTimeLocale "%B" now)
但是这个返回类型是 IO ()
,而我需要的是 String
(也不是 IO String
,只是 String
)。
我知道 do
语句创建了一个单子,但我找不到任何其他方法来在 Haskell 中获取日期。
那么,有没有办法编写这样的函数呢?
非常感谢您提供的任何帮助!