15

我想像JavaScriptnew Date().toISOString()那样将完整的日期/时间转换为 ISO 8601 格式,并给出一个YYYY-MM-DDTHH:mm:ss.sssZ格式。

我找不到执行此操作的基本库函数或包。

4

2 回答 2

18

我没有看到任何预先存在的功能可以做到这一点,但您可以使用以下方法轻松制作Data.Time.Format.formatTime

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

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

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

于 2013-10-26T23:41:15.670 回答
3

版本中的time1.9添加了此功能(文档):

iso8601Show :: ISO8601 t => t -> String

UTCTime有一个ISO8601实例。

于 2018-08-29T23:44:12.703 回答