我已经尝试过google搜索但是很难找到一个具体的例子,或者我应该使用哪些库。
我想格式化NominalDiffTime
(NominalDiffTime)类型的值,例如格式为05/10/2017 10:10AM
。
答案 0 :(得分:5)
想出来。我认为由于类型别名存在一些混淆:type POSIXTime = NominalDiffTime
(https://hackage.haskell.org/package/time-1.8.0.3/docs/Data-Time-Clock-POSIX.html#t:POSIXTime)。
import Data.Time.Clock
import Data.Time.Format
import Data.Time.Clock.POSIX
myFormatUtcTime :: UTCTime -> String
myFormatUtcTime = formatTime defaultTimeLocale "%H:%M %d/%m/%Y"
myFormatDiffTime :: NominalDiffTime -> String
myFormatDiffTime = formatTime defaultTimeLocale "%H:%M" . posixSecondsToUTCTime
答案 1 :(得分:3)
我建议fmt
库进行时间格式化。
此处示例:
ghci> import Data.Time (getZonedTime)
ghci> import Fmt.Time (dateDashF, dateSlashF)
ghci> t <- getZonedTime
ghci> t
2017-10-05 14:53:08.818531 MSK
it :: ZonedTime
ghci> dateDashF t
"2017-10-05"
it :: Data.Text.Internal.Builder.Builder
ghci> dateSlashF t
"10/05/17"
it :: Data.Text.Internal.Builder.Builder