elm-community/elm-time/1.0.8

NOTE: this package is not compatible with Elm 0.19.1

Time.DateTime

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

DateTimes

DateTime is the opaque type for all DateTime values. Values of this type represent a valid Date and a time offset from midnight.

zero : DateTimeData

zero represents the first millisecond of the first day of the current era. Use it to construct DateTime values:

-- 0-01-01T00:00:00Z
dateTime zero


-- 2016-01-01T00:00:00Z
dateTime { zero | year = 2016 }


-- 2016-05-29T13:00:00Z
dateTime { zero | year = 2016, month = 5, day = 29, hour = 13 }
epoch : DateTime

epoch is the instant in time that represents the first millisecond of the UNIX Epoch.

dateTime : DateTimeData -> DateTime

dateTime constructs a DateTime value given a date and a time. Invalid values are clamped to the nearest valid date and time.

date : DateTime -> Date

date returns a DateTime's Date.

year : DateTime -> Int

year returns a DateTime's year.

month : DateTime -> Int

month returns a DateTime's month.

day : DateTime -> Int

day returns a DateTime's day.

weekday : DateTime -> Weekday

weekday returns a DateTime's day of the week.

hour : DateTime -> Int

hour returns a DateTime's hour.

minute : DateTime -> Int

minute returns a DateTime's minute.

second : DateTime -> Int

second returns a DateTime's second.

millisecond : DateTime -> Int

millisecond returns a DateTime's millisecond.

Manipulating DateTimes

setDate : Date -> DateTime -> DateTime

setDate sets a DateTime's Date.

setYear : Int -> DateTime -> DateTime

setYear sets a DateTime's year.

See also Time.Date.setYear.

setMonth : Int -> DateTime -> DateTime

setMonth sets a DateTime's month.

See also Time.Date.setMonth.

setDay : Int -> DateTime -> DateTime

setDay sets a DateTime's day.

See also Time.Date.setDay.

setHour : Int -> DateTime -> DateTime

setHour sets a DateTime's hour.

setMinute : Int -> DateTime -> DateTime

setMinute sets a DateTime's minute, returning Nothing if the updated time is invalid or Just the new DateTime.

setSecond : Int -> DateTime -> DateTime

setSecond sets a DateTime's second, returning Nothing if the updated time is invalid or Just the new DateTime.

setMillisecond : Int -> DateTime -> DateTime

setMillisecond sets a DateTime's millisecond, returning Nothing if the updated time is invalid or Just the new DateTime.

addYears : Int -> DateTime -> DateTime

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

See also Time.Date.addYears.

addMonths : Int -> DateTime -> DateTime

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

See also Time.Date.addMonths.

addDays : Int -> DateTime -> DateTime

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

See also Time.Date.addDays.

addHours : Int -> DateTime -> DateTime

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

addMinutes : Int -> DateTime -> DateTime

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

addSeconds : Int -> DateTime -> DateTime

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

addMilliseconds : Int -> DateTime -> DateTime

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

Comparing DateTimes

compare : DateTime -> DateTime -> Order

compare two DateTimes.

Subtracting DateTimes

type alias DateTimeDelta =
{ years : Int
, months : Int
, days : Int
, hours : Int
, minutes : Int
, seconds : Int
, milliseconds : Int
}

DateTimeDelta represents the relative difference between two DateTime values.

delta : DateTime -> DateTime -> DateTimeDelta

delta computes the relative difference between two DateTime values.

Helper functions

isValidTime : Int -> Int -> Int -> Time -> Bool

isValidTime returns True if the given hour, minute, second and millisecond represent a valid time of day.

toTimestamp : DateTime -> Time

toTimestamp converts a DateTime value to its UNIX timestamp representation as milliseconds.

fromTimestamp : Time -> DateTime

fromTimestamp converts the millisecond representation of a UNIX timestamp into a DateTime value.

toTuple : DateTime -> ( Int, Int, Int, Int, Int, Int, Int )

toTuple converts a DateTime into a (year, month, day, hour, miunte, second, millisecond) tuple.

fromTuple : ( Int, Int, Int, Int, Int, Int, Int ) -> DateTime

fromTuple converts a (year, month, day, hour, minute, second, millisecond) tuple into a DateTime.

toISO8601 : DateTime -> String

toISO8601 renders a DateTime in ISO8601 format.

fromISO8601 : String -> Result String DateTime

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