IC l      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkNone!"*-/259;<=?IT\ constraintsecond and fractionssee Data.Time.Hora.Span for conversion l | m  ( ! a) parts show local date & time&for conversions between timezones see Data.Time.Hora.Zone 6serializeable structure for essential Date, Time partssee Data.Time.Hora.Part for conversion between n and   *excludes seconds. Just fraction as Num otoPico (Milli 1) 1000000000 ppico in 1 secondqpico in 1 milliSec 1 > Milli 500 True Sec 1 == Milli 1000True ! fromInteger returns #. assumes the value is Pico seconds$Milli 397100 + (Sec 2) + 37891470000Pico 399137891470000+Milli 397100 + (Sec 2) + (Pico 37891470000)Pico 3991378914700003 * (Sec 10) == (Sec 30)True 3 * (Pico 10) == (Pico 30) True $300 * (Milli 1000) == (Milli 300000)True see Data.Time.Hora.Zone re: m serializeable serializeableserializeable for ease of conversion#rst uopq   rst  uopqNone!"*-/259;<=?IT\vbuild format string from # # *0: 0 paddedsee w&new line' time zone(time zone name)%H:%M*%H:%M:%S+AM PM,am pm- 24-hour *0. 12-hour *0/minute *0 0second *0 1pico precision *0 26.12 for 0.12 second. Pico precision, no trailing 0 3%Y-%m-%d4year5month name long6month name short7month *08day *09'day of week for Week Date format, 1 - 7:1day of week number, 0 (= Sunday) - 6 (= Saturday);day of week short<day of week long =(week of year start sunday >week of year start sunday? format as UTC@*format as local time in specified timezoneCenter $ x as ordinary x with ){-# LANGUAGE OverloadedStrings #-} $vy#$%&'()*+,-./0123456789:;<=>?@z format. see w ABC#80/($%&')*+,-.12345679:;<=>?@#$%&'()*+,-./0123456789:;<=>?@vy#$%&'()*+,-./0123456789:;<=>?@zABCNone!"*-/259;<=?IT\D yyyy-mm-dd E yyyymmdd F,time.fraction no trailing 0 - varying length09:10:58.030311306 Gtime 09:11:18 H date, time 2016-12-14 09:16:23 DEFGHDEFGHDEFGHDEFGHNone!"*-/259;<=?IT\Ipico in 1 secondJpico in 1 milliKmilli in 1 secLtoPico $ Milli 3 3000000000 MtoMilli $ Sec 55000 NtoSec $ Milli 781200781 IJKLMNOPQR IJKLMNOPQR LMNIJKQROP IJKLMNOPQRNone!"*-/259;<=?IT\S,Difference between times with pico precision,return TimeSpan for ease of conversion with Data.Time.Hora.Span U{ +/- 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 W@assuming both times are in the same date. Day part is discarded STUVWSTUUSTWVSTUVWNone!"*-/259;<=?IT\Xconvert   -> nInvalid date returns Nothing ZUTC [specified time zone/Tz (DatePart a) parts show local date & time  see also Data.Time.Hora.Zone ]assumes DatePart is UTC XYZ[|\]XYZ[Z[XYXYZ[|\]None!"*-/259;<=?IT\^timestamp in specified formatsee Data.Time.Hora.Some for common [#]s `numeric btimestamp in specified format, l | TimeZoneSeriesclocal timezonedUTCelocal timezone  ( ! a) parts show local date & timenow::IO(Tz (DatePart Int))tTz CET (DatePart {year = 2016, month = 12, day = 15, hour = 11, minute = 21, second = 21, pico = 657029375000}) fnow::IO UTCTime(2016-12-15 10:20:54.664155598 UTC gUTC now::IO(DatePart Int)fDatePart {year = 2016, month = 12, day = 15, hour = 10, minute = 20, second = 31, pico = 494880242000} ^_`a}~bcdefg^_`ab`a^_b ^_`a}~bcdefgNone!"*-/259;<=?IT\hconvert a to b in specified TimeZone jconvert   from one TimeZone to another k similar to [8 but safer around dates when e.g. Summer time changes hijkhihikjhijk      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxsyzSPQ{|}~sshora-2.0-FzE0gJbJ2El69m2PaW0NnZData.Time.Hora.TypeData.Time.Hora.FormatData.Time.Hora.SomeData.Time.Hora.SpanData.Time.Hora.FutureData.Time.Hora.PartData.Time.Hora.StampData.Time.Hora.ZoneTwoIntTimeSpanSecPicoMilliTz'tz'TzDatePartyearmonthdayhourminutesecondpico $fOrdTimeSpan $fEqTimeSpan $fNumTimeSpan$fTz'TimeZoneSeries $fTz'TimeZone $fOrdDatePart$fBinaryDatePart$fBinaryDatePart0$fBinaryDatePart1$fFunctorDatePart$fShowDatePart $fEqDatePart$fGenericDatePart$fShowTz $fFunctorTz$fShowTimeSpan$fFunctorTimeSpanFormatRawTabCrlfOffsetZoneHmHmsAMAmH_24H_12MinSFraction_fixedFractionY_m_dYMonthMthMth_1_12DD_wk_1_7D_wk_0_6D_wkD_week Wk_year_Sun Wk_year_Monformatformat' $fBuildFormat $fBuild[]$fIsStringFormatisoymdtftdtpicoSecpicoMsmsSectoPicotoMillitoSec toDiffTime nominalDiff picoTimeSpan timeSpanPicoPicoDiff- futureUTCTime$fPicoDiffFixed$fPicoDiffUTCTimeToUTCtoUtcfromUtcfromUtc' $fToUTCTz$fToUTCDatePart TimestamptsNownowts' $fTimestampTz $fTimestamp[]$fNowTz $fNowUTCTime $fNowDatePart ToTimeZone toTimeZone$fToTimeZoneTzMaybe$fToTimeZoneUTCTimeTz time-1.6.0.1Data.Time.LocalTime.TimeZoneTimeZone.timezone-series-0.1.6.1-CNCHtjQNRtTGFTGIqbmSd8#Data.Time.LocalTime.TimeZone.SeriesTimeZoneSeriesData.Time.Clock.UTCUTCTimeOrd_StopContinuewithPicoBuildData.Time.Format formatTimebaseGHC.BaseStringbuildwithDefaultLocaleData.Time.Clock.POSIXgetCurrentTimefi withTimeZone withUTCTime