如何在Haskell中将日期/时间格式化为ISO 8601

时间:2013-10-26 23:21:23

标签: datetime haskell iso8601

我想将完整的日期/时间转换为ISO 8601格式like JavaScript's new Date().toISOString(),格式为YYYY-MM-DDTHH:mm:ss.sssZ

我无法找到基本库函数或包来执行此操作。

2 个答案:

答案 0 :(得分:16)

我没有看到任何预先存在的功能,但您可以轻松使用Data.Time.Format.formatTime

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

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

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

答案 1 :(得分:0)

版本time中的1.9库添加了此功能(docs):

  

iso8601Show :: ISO8601 t => t -> String

UTCTime有一个ISO8601实例。