elm-community/elm-time/1.0.12

NOTE: this package is not compatible with Elm 0.19.1

Time.ZonedDateTime

This module defines a time representation based on a Date, the time of day and a time zone.

ZonedDateTimes should only be used when reasoning about or displaying DateTimes in a user's local time zone. For this reason, the API surface of ZonedDateTimes is extremely limited.

ZonedDateTimes

ZoneDateTime is the opaque type for all ZonedDateTime values. Values of this type represent a (TimeZone, DateTime) pair.

Constructing ZonedDateTimes

zero : DateTimeData

zero represents the first millisecond of the first day of the current era. Use it to build ZonedDateTime values:

-- 0-01-01T00:00:00+02:00
zonedDateTime (europe_bucharest ()) zero


-- 2016-01-01T00:00:00+02:00
zonedDateTime (europe_bucharest ()) { zero | year = 2016 }


-- 2016-05-29T13:00:00+02:00
zonedDateTime (europe_bucharest ()) { zero | year = 2016, month = 5, day = 29, hour = 13 }
zonedDateTime : TimeZone -> DateTimeData -> ZonedDateTime

zonedDateTime constructs a ZonedDateTime value given a TimeZone, a date and a time. Invalid values are clamped to the nearest valid date and time.

fromDateTime : TimeZone -> DateTime -> ZonedDateTime

fromDateTime constructs a ZonedDateTime value from a TimeZone and a DateTime.

toDateTime : ZonedDateTime -> DateTime

toDateTime converts a ZonedDateTime to a UTC DateTime value.

fromTimestamp : TimeZone -> Time -> ZonedDateTime

fromTimestamp converts the millisecond representation of a UNIX timestamp into a ZonedDateTime value. This is equivalent to calling DateTime.fromTimestamp and then converting the resulting DateTime value to a ZonedDateTime.

toTimestamp : ZonedDateTime -> Time

toTimestamp converts a ZonedDateTime to its UNIX timestamp representation in milliseconds.

Inspecting ZonedDateTimes

timeZone : ZonedDateTime -> TimeZone

timeZone returns a ZonedDatetime's TimeZone.

year : ZonedDateTime -> Int

year returns a ZonedDateTime's year.

month : ZonedDateTime -> Int

month returns a ZonedDateTime's month.

day : ZonedDateTime -> Int

day returns a ZonedDateTime's day.

weekday : ZonedDateTime -> Weekday

weekday returns a ZonedDateTime's day of the week.

hour : ZonedDateTime -> Int

hour returns a ZonedDateTime's hour.

minute : ZonedDateTime -> Int

minute returns a ZonedDateTime's minute.

second : ZonedDateTime -> Int

second returns a ZonedDateTime's second.

millisecond : ZonedDateTime -> Int

millisecond returns a ZonedDateTime's millisecond.

abbreviation : ZonedDateTime -> String

abbreviation returns a ZonedDateTime's abbreviation at that time.

utcOffset : ZonedDateTime -> Int

utcOffset returns a ZonedDateTime's offset from UTC in milliseconds at that time.

utcOffsetString : ZonedDateTime -> String

utcOffsetString returns a ZonedDateTime's UTC offset at that time as a string.

Manipulating ZonedDateTimes

asTimeZone : TimeZone -> ZonedDateTime -> ZonedDateTime

asTimeZone converts a ZonedDateTime to another TimeZone.

setDate : Date -> ZonedDateTime -> ZonedDateTime

setDate sets a ZonedDateTime's date.

setYear : Int -> ZonedDateTime -> ZonedDateTime

setYear sets a ZonedDateTime's year.

setMonth : Int -> ZonedDateTime -> ZonedDateTime

setMonth sets a ZonedDateTime's month.

setDay : Int -> ZonedDateTime -> ZonedDateTime

setDay sets a ZonedDateTime's day.

setHour : Int -> ZonedDateTime -> ZonedDateTime

setHour sets a ZonedDateTime's hour.

setMinute : Int -> ZonedDateTime -> ZonedDateTime

setMinute sets a ZonedDateTime's minute.

setSecond : Int -> ZonedDateTime -> ZonedDateTime

setSecond sets a ZonedDateTime's second.

setMillisecond : Int -> ZonedDateTime -> ZonedDateTime

setMillisecond sets a ZonedDateTime's millisecond.

addYears : Int -> ZonedDateTime -> ZonedDateTime

addYears adds a relative number of years to a ZonedDateTime value.

addMonths : Int -> ZonedDateTime -> ZonedDateTime

addMonths adds a relative number of months to a ZonedDateTime value.

addDays : Int -> ZonedDateTime -> ZonedDateTime

addDays adds an absolute number of days to a ZonedDateTime value.

addHours : Int -> ZonedDateTime -> ZonedDateTime

addHours adds a relative number of hours to a ZonedDateTime value.

addMinutes : Int -> ZonedDateTime -> ZonedDateTime

addMinutes adds a relative number of minutes to a ZonedDateTime value.

addSeconds : Int -> ZonedDateTime -> ZonedDateTime

addSeconds adds a relative number of seconds to a ZonedDateTime value.

addMilliseconds : Int -> ZonedDateTime -> ZonedDateTime

addMilliseconds adds an absolute number of milliseconds to a ZonedDateTime value.

Helper functions

toISO8601 : ZonedDateTime -> String

toISO8601 renders a ZonedDateTime in ISO8601 format.

fromISO8601 : TimeZone -> String -> Result String ZonedDateTime

fromISO8601 parses an ISO8601-formatted string into a ZonedDateTime object, adjusting for its offset.