nh2*_*nh2 14 datetime haskell iso8601
我想将完整的日期/时间转换为像ISO 一样的new Date().toISOString() ISO 8601格式,给出一种YYYY-MM-DDTHH:mm:ss.sssZ格式.
我找不到基本库函数或包来执行此操作.
jwo*_*der 16
我没有看到任何预先存在的功能,但你可以轻松使用Data.Time.Format.formatTime:
import System.Locale (defaultTimeLocale)
import Data.Time.Format (formatTime)
iso8601 :: UTCTime -> String
iso8601 = formatTime defaultTimeLocale "%FT%T%QZ"
Run Code Online (Sandbox Code Playgroud)
(您需要将时间转换为UTCTime传递给此函数之前的时间,以便它实际显示实际的UTC时间.)
time版本中的库添加1.9了此功能(文档):
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"
Run Code Online (Sandbox Code Playgroud)