如何在Haskell中将UTCTime格式化为ISO 8601

vlf7wbxs  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(163)

我想转换一个完整的日期/时间到ISO 8601格式like JavaScript's new Date().toISOString()做,给一个YYYY-MM-DDTHH:mm:ss.sssZ
我找不到一个基本库函数或包来做这件事。

fcy6dtqo

fcy6dtqo1#

我没有看到任何预先存在的函数来实现这一点,但是你可以使用Data.Time.Format.formatTime轻松地创建一个:

import System.Locale (defaultTimeLocale)
import Data.Time.Format (formatTime)

iso8601 :: UTCTime -> String
iso8601 = formatTime defaultTimeLocale "%FT%T%QZ"

字符串
(You在将时间传递给此函数之前,需要将其转换为UTCTime,以便它实际显示实际的UTC时间。

wfauudbj

wfauudbj2#

1.9版本中的time库添加了此功能(文档):
iso8601Show :: ISO8601 t => t -> String
UTCTime有一个ISO8601示例。

ghci> import Data.Time
ghci> import Data.Time.Format.ISO8601
ghci> iso8601Show <$> getCurrentTime
"2023-11-18T14:58:56.371121983Z"

字符串

相关问题