- formatDateTime :: CalendarTime -> String
- formatDateTime time
- = printf "%04d-%02d-%02dT%02d:%02d:%02d"
- (ctYear time)
- (fromEnum (ctMonth time) + 1)
- (ctDay time)
- (ctHour time)
- (ctMin time)
- (ctSec time)
+ formatLocalTime :: LocalTime -> String
+ formatLocalTime localTime
+ = let (year, month, day) = toGregorian (localDay localTime)
+ timeOfDay = localTimeOfDay localTime
+ (secInt, secFrac) = properFraction (todSec timeOfDay)
+ in
+ (printf "%04d-%02d-%02dT%02d:%02d:%02d"
+ year
+ month
+ day
+ (todHour timeOfDay)
+ (todMin timeOfDay)
+ (secInt :: Int))
+ ++
+ (if secFrac == 0
+ then ""
+ else tail (show secFrac))