2013-02-05 50 views
1
Prelude> import Data.Time.Clock.POSIX (getPOSIXTime) 
Prelude Data.Time.Clock.POSIX> ptime <- getPOSIXTime 
Prelude Data.Time.Clock.POSIX> ptime 
1360059876.245525s 
Prelude Data.Time.Clock.POSIX> :t ptime 
ptime :: Data.Time.Clock.POSIX.POSIXTime 
Prelude Data.Time.Clock.POSIX> 

我想将ptime转换为字符串类型,它怎么做?haskell,如何将POSIXTime类型转换为字符串

回答

1

使用posixSecondsToUTCTime(也在Data.Time.Clock.POSIX中)将POSIXTime转换为UTCTime;然后从Data.Time.Format的formatTimeUTCTime格式化为String

例如

formatTime defaultTimeLocale "%FT%T" (posixSecondsToUTCTime ptime) 
--^ISO 8601 
formatTime defaultTimeLocale "%s%Qs" (posixSecondsToUTCTime ptime) 
--^fractional seconds since the epoch (but see caveat noted in documentation) 

defaultTimeLocale是System.Locale。)

+0

谢谢你,你回答的作品。但是如果我想让“1360059876.245525s”成为一个字符串,我该怎么做? – user2042693

+0

@ user2042693看我的编辑。 – dave4420

+0

它的工作原理,谢谢。 :) – user2042693

相关问题