h&HT=      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred="$%&'()*-/01235689:;<=>? tztimeA time zone's identifier, e.g.  Europe/Paris.tztime A time zone.%There are two main ways of loading a : >Load it from the operating system's time zone database, using ,  or .*Load it from the embedded database, using  or .This package depends on the tzdata' package, which comes with an embedded  https://www.iana.org/time-zonesIANA time zone database.The embedded database has the benefit of being portable, that is, it works regardless of your operating system. The functions to read from the system database, on the other hand, aren't portable;  and # are not likely to work on Windows.However, you have to make sure you're always using the latest version of tzdata to get the latest updates. The operating system's time zone database is usually easier to keep up-to-date.tztime!The time zone's identifier, e.g.  Europe/Paris.tztime0The time zone's rules describing offset changes.tztimeThe UTC time zone.tztimeLooks for the time zone file in the system time zone directory, which is /usr/share/zoneinfo , or if the TZDIR* environment variable is set, then there.Note, this is unlikely to work on non-posix systems (e.g., Windows). Use ,  or  instead. Throws an  if the identifier is not found.tztime2Reads and parses a time zone information file (in  tzfile(5) aka. Olson file format).tztimeReturns the local  based on the TZ and TZDIR environment variables.See tzset(3) for details, but basically:If TZ' environment variable is unset, we use /etc/localtime.If TZ is set, but empty, we use .If TZ is set and not empty, we use  to read that file.tztimeLook up a time zone in the tzdata's embedded database.tztime?Retrieves the time zone info for a "canonical" time zone from tzdata's embedded database.~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!   Safe-Inferred>"$%&'()*-/01235689:;<=>?#tztimeAttempted to construct a  from an invalid or ambiguous .tztime8A valid and unambiguous point in time in some time zone.tztimeThe local time of this .tztimeThe time zone of this .tztime=The offset observed in this time zone at this moment in time.tztime Converts a  to the given time zone.tztime Converts a  to the given time zone.tztime Converts a ( to UTC and then to the given time zone.tztime Similar to , but returns a ) if the local time is ambiguous/invalid.tztime Constructs a * from a local time in the given time zone.If the local time lands on a "gap" (e.g. when the clocks are set forward in spring and a local time is skipped), we shift the time forward by the duration of the gap.If it lands on an "overlap" (e.g. when the clocks are set back in autumn and a local time happens twice), we use the earliest offset.tztime Similar to , but throws a  in ) if the local time is ambiguous/invalid.tztime Similar to , but throws an ) if the local time is ambiguous/invalid.tztime8Converts this moment in time to the universal time-line.tztime2Converts this moment in time to a POSIX timestamp.tztime"Converts this moment in time to a  (discarding time zone rules).tztime5Converts this moment in time to some other time zone.tztime9Modify this moment in time along the universal time-line.tztime5Modify this moment in time along the local time-line.tztimeTry to construct a  from the given components.tztimeIf the user specified an offset, check that it matches at least one of the valid s.tztime>NOTE: this assumes the time zone identifier used to construct  exists in the embedded time zone database, i.e. it can be loaded using .tztime.yyyy-mm-dd hh:mm:ss[.sss] [hh:mm] [time zone] . Example: (2022-03-04 02:02:01 +01:00 [Europe/Rome].The offset is optional, except when the local time is ambiguous (i.e. when the clocks are set forward around that time in that time zone).'The offset can also be expressed using  /https://www.timeanddate.com/time/zones/military military time zone abbreviations, and these time zones abbreviations as per RFC 822 section 5: "UTC", "UT", "GMT", "EST", "EDT", "CST", "CDT", "MST", "MDT", "PST", "PDT".Note: the time zone's rules are loaded from the embedded database using .tztime,yyyy-mm-dd hh:mm:ss[.sss] hh:mm [time zone] . Example: (2022-03-04 02:02:01 +01:00 [Europe/Rome].tztimeThe  is ambiguous. This usually happens when the clocks are set back in autumn and a local time happens twice.tztime"The first occurrence of the given , at the earliest offset.tztime#The second occurrence of the given , at the latest offset.tztimeThe  is invalid. This usually happens when the clocks are set forward in spring and a local time is skipped.tztime The given ( adjusted back by the length of the gap.tztime The given + adjusted forward by the length of the gap.!! Safe-Inferred="$%&'()*-/01235689:;<=>?8CtztimeReturns the current time with the local time zone information based on the TZ and TZDIR environment variables.See tzset(3) for details, but basically:If TZ' environment variable is unset, we use /etc/localtime.If TZ is set, but empty, we use .If TZ is set and not empty, we use  to read that file.tztimeIf this local time happens to be on an overlap, switch to the earliest of the two offsets.atEarliestOffset [tz|2022-11-06 01:30:00 -06:00 [America/Winnipeg]|]-2022-11-06 01:30:00 -05:00 [America/Winnipeg]tztimeIf this local time happens to be on an overlap, switch to the latest of the two offsets.atLatestOffset [tz|2022-11-06 01:30:00 -05:00 [America/Winnipeg]|]-2022-11-06 01:30:00 -06:00 [America/Winnipeg]tztime;Changes the time to the earliest time possible on that day.,This is usually 00:00, but, if, on that day:the clocks are turned, for example, from 23:59 to 01:00 and midnight is skipped, this will return 01:00.the clocks are turned, for example, from 01:00 to 00:00 and midnight happens twice, this will return the first occurrence (i.e. midnight at the earliest offset).tztime Adds the given amount of seconds[tz|2022-03-04 10:15:00 [Europe/Rome]|] & addTime (hours 2 + minutes 20)(2022-03-04 12:35:00 +01:00 [Europe/Rome]tztime A standard hour of 3600 seconds.tztime A standard minute of 60 seconds.tztime.Modifies the date/time on the local time-line.The result may:Land on a "gap", e.g. when the clocks are set forward in spring and a local time is skipped. When this happens, we shift the time forward by the duration of the gap.For example, on the 13th, the clocks skip one hour, from 01:59 (at the -06:00 offset) straight to 03:00 (at the -05:00 offset):[tz|2022-03-12 02:15:00 -06:00 [America/Winnipeg]|] & modifyLocal (addCalendarClip (calendarDays 1))-2022-03-13 03:15:00 -05:00 [America/Winnipeg]Land on an "overlap", e.g. when the clocks are set back in autumn and a local time happens twice. When this happens, we attempt to preserve the offset of the original . This ensures that modifyLocal id == id. If this is not possible, use the earliest of the two offsets.For example, on the 6th, the clocks are set back one hour, from 01:59 (at the -05:00 offset) back to 01:00 (at the -06:00 offset). This means the time 01:15 happens twice, first at -05:00 and then again at -06:00.[tz|2022-11-05 01:15:00 -05:00 [America/Winnipeg]|] & modifyLocal (addCalendarClip (calendarDays 1))-2022-11-06 01:15:00 -05:00 [America/Winnipeg][tz|2022-11-07 01:15:00 -06:00 [America/Winnipeg]|] & modifyLocal (addCalendarClip (calendarDays -1))-2022-11-06 01:15:00 -06:00 [America/Winnipeg]5This behaviour should be suitable for most use cases.Note: modifyLocal (g . f)! may not always be equivalent to modifyLocal g . modifyLocal f.If  modifyLocal f lands on a gap or an overlap, the time will be corrected as described above; but there's a chance modifyLocal (g . f) would skip right over the gap/overlap and no correction is needed. As a rule of thumb, apply all modifications to the local time-line in one go.import Control.Arrow ((>>>)):{.[tz|2022-03-04 10:15:00 +01:00 [Europe/Rome]|] & modifyLocal (> addCalendarClip (calendarMonths 2 <> calendarDays 3) >>>+ atFirstDayOfWeekOnAfter Wednesday >>> atMidnight ):}(2022-05-11 00:00:00 +02:00 [Europe/Rome]tztime Similar to , but returns a ' if the result lands in a gap/overlap.tztime Similar to , but throws a  in ' if the result lands in a gap/overlap.tztimeAdd the given number of months first and then the given number of days, using the proleptic Gregorian calendar.When adding months, days past the last day of the month are clipped to the last day. For instance, 2005-01-30 + 1 month = 2005-02-28.tztimeAdd the given number of months first and then the given number of days. using the proleptic Gregorian calendar.When adding months, days past the last day of the month roll over to the next month. For instance, 2005-01-30 + 1 month = 2005-03-02.tztime5Sets the year using the proleptic Gregorian calendar.tztimeSets the month using the proleptic Gregorian calendar. Invalid values will be clipped to the correct range.tztimeSets the day of month using the proleptic Gregorian calendar. Invalid values will be clipped to the correct range.tztime Sets the day.tztimeSets the time to 00:00.tztime!Moves the date to the next given . If the current date is already a match, then the current date is returned unmodified./tzt = [tz|2022-02-24 10:00:00 [Europe/London]|]4tzt & modifyLocal (atFirstDayOfWeekOnAfter Thursday)*2022-02-24 10:00:00 +00:00 [Europe/London]5tzt & modifyLocal (atFirstDayOfWeekOnAfter Wednesday)*2022-03-02 10:00:00 +00:00 [Europe/London]tztime?Calculate the difference in seconds between two points in time... Safe-Inferred>"$%&'()*-/01235689:;<=>?=NtztimeQuasiquoter for parsing a  at compile-time in the format: .yyyy-mm-dd hh:mm:ss[.sss] [hh:mm] [time zone].The offset is optional, except when the local time is ambiguous (i.e. when the clocks are set back around that time in that time zone).'The offset can also be expressed using  /https://www.timeanddate.com/time/zones/military military time zone abbreviations, and these time zones abbreviations as per RFC 822 section 5: "UTC", "UT", "GMT", "EST", "EDT", "CST", "CDT", "MST", "MDT", "PST", "PDT".Note: the time zone's rules are loaded from the embedded database using .+[tz|2022-03-04 10:15:40.123 [Europe/Rome]|],2022-03-04 10:15:40.123 +01:00 [Europe/Rome],[tz|2022-11-06 01:30:00 [America/Winnipeg]|].../ @ Ambiguous time: please specify an offset.( Did you mean any of the following?5 - 2022-11-06 01:30:00 -05:00 [America/Winnipeg]5 - 2022-11-06 01:30:00 -06:00 [America/Winnipeg]... Safe-Inferred>"$%&'()*-/01235689:;<=>?=                       ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                                                                                                                                 %tztime-0.1.0.0-KGq7AVbuMAdIORAuMR3S2SData.Time.TZInfoData.Time.TZTimeData.Time.TZTime.InternalData.Time.TZTime.QQControl.Exception IOExceptionfromIdentifier Paths_tztime+tzdata-0.2.20220815.0-WMtTa0brjE1wE9v1BZlvEData.Time.Zones.DBTZLabelAfrica__AbidjanAfrica__AlgiersAfrica__Bissau Africa__CairoAfrica__Casablanca Africa__CeutaAfrica__El_AaiunAfrica__Johannesburg Africa__JubaAfrica__Khartoum Africa__LagosAfrica__MaputoAfrica__MonroviaAfrica__NairobiAfrica__NdjamenaAfrica__Sao_TomeAfrica__Tripoli Africa__TunisAfrica__Windhoek America__AdakAmerica__AnchorageAmerica__Araguaina America__Argentina__Buenos_AiresAmerica__Argentina__CatamarcaAmerica__Argentina__CordobaAmerica__Argentina__JujuyAmerica__Argentina__La_RiojaAmerica__Argentina__Mendoza America__Argentina__Rio_GallegosAmerica__Argentina__SaltaAmerica__Argentina__San_JuanAmerica__Argentina__San_LuisAmerica__Argentina__TucumanAmerica__Argentina__UshuaiaAmerica__AsuncionAmerica__BahiaAmerica__Bahia_BanderasAmerica__BarbadosAmerica__BelemAmerica__BelizeAmerica__Boa_VistaAmerica__BogotaAmerica__BoiseAmerica__Cambridge_BayAmerica__Campo_GrandeAmerica__CancunAmerica__CaracasAmerica__CayenneAmerica__ChicagoAmerica__ChihuahuaAmerica__Costa_RicaAmerica__CuiabaAmerica__DanmarkshavnAmerica__DawsonAmerica__Dawson_CreekAmerica__DenverAmerica__DetroitAmerica__EdmontonAmerica__EirunepeAmerica__El_SalvadorAmerica__Fort_NelsonAmerica__FortalezaAmerica__Glace_BayAmerica__Goose_BayAmerica__Grand_TurkAmerica__GuatemalaAmerica__GuayaquilAmerica__GuyanaAmerica__HalifaxAmerica__HavanaAmerica__HermosilloAmerica__Indiana__IndianapolisAmerica__Indiana__KnoxAmerica__Indiana__MarengoAmerica__Indiana__PetersburgAmerica__Indiana__Tell_CityAmerica__Indiana__VevayAmerica__Indiana__VincennesAmerica__Indiana__WinamacAmerica__InuvikAmerica__IqaluitAmerica__JamaicaAmerica__JuneauAmerica__Kentucky__LouisvilleAmerica__Kentucky__MonticelloAmerica__La_Paz America__LimaAmerica__Los_AngelesAmerica__MaceioAmerica__ManaguaAmerica__ManausAmerica__MartiniqueAmerica__MatamorosAmerica__MazatlanAmerica__MenomineeAmerica__MeridaAmerica__MetlakatlaAmerica__Mexico_CityAmerica__MiquelonAmerica__MonctonAmerica__MonterreyAmerica__MontevideoAmerica__New_YorkAmerica__Nipigon America__NomeAmerica__NoronhaAmerica__North_Dakota__BeulahAmerica__North_Dakota__Center America__North_Dakota__New_Salem America__NuukAmerica__OjinagaAmerica__PanamaAmerica__PangnirtungAmerica__ParamariboAmerica__PhoenixAmerica__Port_au_PrinceAmerica__Porto_VelhoAmerica__Puerto_RicoAmerica__Punta_ArenasAmerica__Rainy_RiverAmerica__Rankin_InletAmerica__RecifeAmerica__ReginaAmerica__ResoluteAmerica__Rio_BrancoAmerica__SantaremAmerica__SantiagoAmerica__Santo_DomingoAmerica__Sao_PauloAmerica__ScoresbysundAmerica__SitkaAmerica__St_JohnsAmerica__Swift_CurrentAmerica__TegucigalpaAmerica__ThuleAmerica__Thunder_BayAmerica__TijuanaAmerica__TorontoAmerica__VancouverAmerica__WhitehorseAmerica__WinnipegAmerica__YakutatAmerica__YellowknifeAntarctica__CaseyAntarctica__DavisAntarctica__MacquarieAntarctica__MawsonAntarctica__PalmerAntarctica__RotheraAntarctica__Troll Asia__Almaty Asia__Amman Asia__Anadyr Asia__Aqtau Asia__AqtobeAsia__Ashgabat Asia__Atyrau Asia__Baghdad Asia__Baku Asia__Bangkok Asia__Barnaul Asia__Beirut Asia__Bishkek Asia__ChitaAsia__Choibalsan Asia__ColomboAsia__Damascus Asia__Dhaka Asia__Dili Asia__DubaiAsia__DushanbeAsia__Famagusta Asia__Gaza Asia__HebronAsia__Ho_Chi_MinhAsia__Hong_Kong Asia__Hovd Asia__Irkutsk Asia__JakartaAsia__JayapuraAsia__Jerusalem Asia__KabulAsia__Kamchatka Asia__KarachiAsia__KathmanduAsia__Khandyga Asia__KolkataAsia__Krasnoyarsk Asia__Kuching Asia__Macau Asia__MagadanAsia__Makassar Asia__Manila Asia__NicosiaAsia__NovokuznetskAsia__Novosibirsk Asia__Omsk Asia__OralAsia__PontianakAsia__Pyongyang Asia__QatarAsia__QostanayAsia__Qyzylorda Asia__RiyadhAsia__SakhalinAsia__Samarkand Asia__SeoulAsia__ShanghaiAsia__SingaporeAsia__Srednekolymsk Asia__TaipeiAsia__Tashkent Asia__Tbilisi Asia__Tehran Asia__Thimphu Asia__Tokyo Asia__TomskAsia__Ulaanbaatar Asia__UrumqiAsia__Ust_NeraAsia__Vladivostok Asia__Yakutsk Asia__YangonAsia__Yekaterinburg Asia__YerevanAtlantic__AzoresAtlantic__BermudaAtlantic__CanaryAtlantic__Cape_VerdeAtlantic__FaroeAtlantic__MadeiraAtlantic__South_GeorgiaAtlantic__StanleyAustralia__AdelaideAustralia__BrisbaneAustralia__Broken_HillAustralia__DarwinAustralia__EuclaAustralia__HobartAustralia__LindemanAustralia__Lord_HoweAustralia__MelbourneAustralia__PerthAustralia__SydneyEtc__GMT Etc__GMT'1 Etc__GMT'10 Etc__GMT'11 Etc__GMT'12 Etc__GMT'2 Etc__GMT'3 Etc__GMT'4 Etc__GMT'5 Etc__GMT'6 Etc__GMT'7 Etc__GMT'8 Etc__GMT'9 Etc__GMT_1 Etc__GMT_10 Etc__GMT_11 Etc__GMT_12 Etc__GMT_13 Etc__GMT_14 Etc__GMT_2 Etc__GMT_3 Etc__GMT_4 Etc__GMT_5 Etc__GMT_6 Etc__GMT_7 Etc__GMT_8 Etc__GMT_9Etc__UTCEurope__AndorraEurope__AstrakhanEurope__AthensEurope__BelgradeEurope__BerlinEurope__BrusselsEurope__BucharestEurope__BudapestEurope__ChisinauEurope__DublinEurope__GibraltarEurope__HelsinkiEurope__IstanbulEurope__Kaliningrad Europe__Kirov Europe__KyivEurope__LisbonEurope__LondonEurope__Madrid Europe__Malta Europe__MinskEurope__Moscow Europe__ParisEurope__Prague Europe__Riga Europe__RomeEurope__SamaraEurope__SaratovEurope__Simferopol Europe__SofiaEurope__TallinnEurope__TiraneEurope__UlyanovskEurope__UzhgorodEurope__ViennaEurope__VilniusEurope__VolgogradEurope__WarsawEurope__ZaporozhyeEurope__ZurichIndian__ChagosIndian__MaldivesIndian__Mauritius Pacific__ApiaPacific__AucklandPacific__BougainvillePacific__ChathamPacific__EasterPacific__EfatePacific__Fakaofo Pacific__FijiPacific__GalapagosPacific__GambierPacific__Guadalcanal Pacific__GuamPacific__HonoluluPacific__KantonPacific__KiritimatiPacific__KosraePacific__KwajaleinPacific__MarquesasPacific__Nauru Pacific__NiuePacific__NorfolkPacific__NoumeaPacific__Pago_PagoPacific__PalauPacific__PitcairnPacific__Port_MoresbyPacific__RarotongaPacific__TahitiPacific__TarawaPacific__Tongatapu Root__CET Root__CST6CDT Root__EET Root__EST Root__EST5EDT Root__HST Root__MET Root__MST Root__MST7MDT Root__PST8PDT Root__WET TZIdentifierTZInfo tziIdentifiertziRulesutcloadFromSystem loadFromFilegetCurrentTZInfo fromLabel $fEqTZInfo $fShowTZInfo $fDataTZInfo$fGenericTZInfo$fNFDataTZInfoTZError TZOverlapTZGapTZTime UnsafeTZTime tztLocalTime tztTZInfo tztOffsettzTimeLocalTime tzTimeTZInfo tzTimeOffsetfromUTC fromPOSIXTime fromZonedTimefromLocalTimeStrict fromLocalTimefromLocalTimeThrowunsafeFromLocalTimetoUTC toPOSIXTime toZonedTimeinTZmodifyUniversalTimeLinemodifyLocalTimeLinereadComponentsP readTZIdentPgetValidTZTimes checkOffset mkSuggestions readP_to_Q liftTZTime liftLocalTime liftTimeZone $fReadTZTime $fShowTZTime$fExceptionTZError $fShowTZError $fEqTZError $fDataTZError$fGenericTZError$fNFDataTZError $fEqTZTime $fDataTZTime$fGenericTZTime$fNFDataTZTimegetCurrentTZTimeatEarliestOffsetatLatestOffset atStartOfDayaddTimehoursminutesseconds modifyLocalmodifyLocalStrictmodifyLocalThrowaddCalendarClipaddCalendarRollOver calendarDays calendarWeekscalendarMonths calendarYearsatYear atMonthOfYear atDayOfMonthatDayatHouratMinuteatSecond atTimeOfDay atMidnightatFirstDayOfWeekOnAfter diffTZTimetz time-1.11.1.1&Data.Time.LocalTime.Internal.LocalTime LocalTime Data.Time.Clock.Internal.UTCTimeUTCTime"Data.Time.Clock.Internal.POSIXTime POSIXTime&Data.Time.LocalTime.Internal.ZonedTime ZonedTimeexceptions-0.10.4Control.Monad.Catch MonadThrowbaseGHC.ErrerrorData.Time.Calendar.Week DayOfWeekversiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDir