我想转换一个完整的日期/时间到ISO 8601格式like JavaScript's new Date().toISOString()做,给一个YYYY-MM-DDTHH:mm:ss.sssZ。我找不到一个基本库函数或包来做这件事。
new Date().toISOString()
YYYY-MM-DDTHH:mm:ss.sssZ
fcy6dtqo1#
我没有看到任何预先存在的函数来实现这一点,但是你可以使用Data.Time.Format.formatTime轻松地创建一个:
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时间。
UTCTime
wfauudbj2#
1.9版本中的time库添加了此功能(文档):iso8601Show :: ISO8601 t => t -> String个而UTCTime有一个ISO8601示例。
1.9
time
iso8601Show :: ISO8601 t => t -> String
ISO8601
ghci> import Data.Time ghci> import Data.Time.Format.ISO8601 ghci> iso8601Show <$> getCurrentTime "2023-11-18T14:58:56.371121983Z"
字符串
2条答案
按热度按时间fcy6dtqo1#
我没有看到任何预先存在的函数来实现这一点,但是你可以使用
Data.Time.Format.formatTime
轻松地创建一个:字符串
(You在将时间传递给此函数之前,需要将其转换为
UTCTime
,以便它实际显示实际的UTC时间。wfauudbj2#
1.9
版本中的time
库添加了此功能(文档):iso8601Show :: ISO8601 t => t -> String
个而
UTCTime
有一个ISO8601
示例。字符串