úÎ4ç0gM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL None!"*-/259;<=?IT  None!"*-/259;<=?IT ZDmyHmp (DmyHm {day = 12, month = 12, year = 2016, hour = 17, minute = 32},59.727482058000) _(DmyHm {day = "12", month = "12", year = "2016", hour = "17", minute = "32"},"59.727280400000")Date, Time w/out second.convert from more precise to more common type      None!"*-/259;<=?IT! constraint"various precisionMtoPico (Milli 1) 1000000000 Npico in 1 secondOpico in 1 milli(safe to mix sec / pico / milli )safe to mix sec / pico / milli *! fromInteger returns $#. assumes the value is Pico seconds!"#$%&'PMNO()*!"$%#&'&'!"#$% !"#$%&'PMNO()* None!"*-/259;<=?ITQ$do calc with current time zone from Rprobably don't need itSQSQSQNone!"*-/259;<=?IT/yyyymmdd 0)format UTCTime just as you need it. uses T ÿpimport Text.Regex.Do.Replace.Template import Prelude hiding ((<),(>)) ... it "formatUTCTime" $ do t1 <- getCurrentTime let p1@DmyHm{..} = partFormats traceIO $ formatUTCTime (("{day}/{month} {hour}:{minute}") < [("day",day),("month",month),("hour",hour),("minute",minute)]) t1 12/12 18:39 1%T%Q2%T %Q3%F %T4 %S.%-q second.pico 5some formats  no padding see U for full measure ; day %-d month %-m year %Y hour %-H minute %-M/0see U5. can also make format with functions in this module 12345/012345/012345/012345None!"*-/259;<=?IT6from specified V 8%specified time in specified zone, to DmyHmP 6789:678867:96789:None!"*-/259;<=?IT;#time with Pico in current timezone nowZTz CET (DmyHm {day = 12, month = 12, year = 2016, hour = 19, minute = 33},15.546562180000)< timestamp second.fraction. UTCt14:41:29.785834836= timestamp second.fraction. UTCt'14:41:29 .785834836>date, time (to second) UTCdt2016-12-12 14:43:13? date stamp yyyymmdd local timezonedTz CET "20161212";<=>?;<=>?;<=>?;<=>?None!"*-/259;<=?IT@pico in 1 secondApico in 1 milliBmilli in 1 secCtoPico (Milli 1) 1000000000 DtoMilli (Sec 1) 1000 @ABCDEFG@ABCDEFG@ABCDEFG@ABCDEFGNone!"*-/259;<=?ITH,Difference between times with pico precision,return TimeSpan for ease of conversion with Data.Time.Hora.Convert JW +/- offsetfrom unit test: ¥getCurrentTime futureUTCTime $ Milli 100 futureUTCTime $ Sec 3 2016-12-12 15:34:03.138798524 UTC 2016-12-12 15:34:03.23893359 UTC 2016-12-12 15:34:06.138978355 UTC Ke.g. Pico part in DmyHmp L@assuming both times are in the same date. Day part is discarded HIJKLHIJJHILKHIJKLX         !"#$%&'(()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMDABN OPQR SPTUPVWPXYPZ[\!hora-1.0.3-CjP8YaojyhpBOMgDQCsV4jData.Time.Hora.Type.YmdHmsData.Time.Hora.Type.DmyHmData.Time.Hora.Type.TimeData.Time.Hora.FormatData.Time.Hora.ParseData.Time.Hora.TimestampData.Time.Hora.ConvertData.Time.Hora.FutureData.Time.Hora.WithTimeZoneYmdHmsyearmonthdayhourminutesecond $fOrdYmdHms $fShowYmdHms $fEqYmdHmsDmyHmpDmyHmp'DmyHm pico2second $fOrdDmyHm $fOrdDmyHmp$fBinaryDmyHmp $fBinaryDmyHm$fFunctorDmyHm $fShowDmyHm $fEqDmyHm $fEqDmyHmp $fShowDmyHmp$fGenericDmyHmp$fGenericDmyHmTwoIntTimeSpanSecPicoMilliTz $fOrdTimeSpan $fEqTimeSpan $fNumTimeSpan$fShowTz $fFunctorTz$fShowTimeSpan$fFunctorTimeSpanymd formatUTCTime hmsFraction hmsFraction'ymdHms spicoFormat partFormatsParseparseparse' $fParse(,) $fParseDmyHmpnowtt'dtdpicoSecpicoMsmsSectoPicotoMillitoSec toDiffTime nominalDiffPicoDiff- futureUTCTime$fPicoDiffFixed$fPicoDiffUTCTimewithPico withTimeZone time-1.6.0.1Data.Time.LocalTime.TimeZonegetCurrentTimeZone WithTimeZoneData.Time.Format.LocaledefaultTimeLocaleData.Time.Format formatTimeData.Time.Clock.UTCUTCTimeData.Time.Clock.POSIXgetCurrentTime