Represents a specific point in time associated with a TimeZone
.
- timestamp : Timestamp
Timestamp
represents the exact moment in time. It's a UTC relatedTimestamp
. - date : Thunk PlainDateTime
Instances For
- Std.Time.DateTime.instHAddDuration
- Std.Time.DateTime.instHAddOffset
- Std.Time.DateTime.instHAddOffset_1
- Std.Time.DateTime.instHAddOffset_2
- Std.Time.DateTime.instHAddOffset_3
- Std.Time.DateTime.instHAddOffset_4
- Std.Time.DateTime.instHAddOffset_5
- Std.Time.DateTime.instHAddOffset_6
- Std.Time.DateTime.instHSubDuration
- Std.Time.DateTime.instHSubDuration_1
- Std.Time.DateTime.instHSubOffset
- Std.Time.DateTime.instHSubOffset_1
- Std.Time.DateTime.instHSubOffset_2
- Std.Time.DateTime.instHSubOffset_3
- Std.Time.DateTime.instHSubOffset_4
- Std.Time.DateTime.instHSubOffset_5
- Std.Time.DateTime.instHSubOffset_6
- Std.Time.DateTime.instRepr
- Std.Time.DateTime.instToString
- Std.Time.instBEqDateTime
- Std.Time.instInhabitedDateTime
Equations
- Std.Time.instBEqDateTime = { beq := fun (x y : Std.Time.DateTime tz) => x.timestamp == y.timestamp }
Equations
- Std.Time.instInhabitedDateTime = { default := { timestamp := default, date := { fn := fun (x : Unit) => default } } }
Creates a new DateTime
out of a Timestamp
that is in a TimeZone
.
Equations
- Std.Time.DateTime.ofTimestamp tm tz = { timestamp := tm, date := { fn := fun (x : Unit) => tm.toPlainDateTimeAssumingUTC.addSeconds tz.toSeconds } }
Converts a DateTime
to the number of days since the UNIX epoch.
Equations
- date.toDaysSinceUNIXEpoch = date.date.get.toDaysSinceUNIXEpoch
Changes the TimeZone
to a new one.
Equations
- date.convertTimeZone tz₁ = Std.Time.DateTime.ofTimestamp date.timestamp tz₁
Creates a new DateTime
out of a PlainDateTime
. It assumes that the PlainDateTime
is relative
to UTC.
Equations
- Std.Time.DateTime.ofPlainDateTimeAssumingUTC date tz = { timestamp := Std.Time.Timestamp.ofPlainDateTimeAssumingUTC date, date := { fn := fun (x : Unit) => date.addSeconds tz.toSeconds } }
Creates a new DateTime
from a PlainDateTime
, assuming that the PlainDateTime
is relative to the given TimeZone
.
Equations
- Std.Time.DateTime.ofPlainDateTime date tz = { timestamp := Std.Time.Timestamp.ofPlainDateTimeAssumingUTC (date.subSeconds tz.toSeconds), date := { fn := fun (x : Unit) => date } }
Add Hour.Offset
to a DateTime
.
Subtract Hour.Offset
from a DateTime
.
Add Minute.Offset
to a DateTime
.
Equations
- dt.addMinutes minutes = Std.Time.DateTime.ofPlainDateTime (dt.date.get.addMinutes minutes) tz
Subtract Minute.Offset
from a DateTime
.
Equations
- dt.subMinutes minutes = Std.Time.DateTime.ofPlainDateTime (dt.date.get.subMinutes minutes) tz
Add Second.Offset
to a DateTime
.
Equations
- dt.addSeconds seconds = Std.Time.DateTime.ofPlainDateTime (dt.date.get.addSeconds seconds) tz
Subtract Second.Offset
from a DateTime
.
Equations
- dt.subSeconds seconds = Std.Time.DateTime.ofPlainDateTime (dt.date.get.subSeconds seconds) tz
Add Millisecond.Offset
to a DateTime
.
Equations
- dt.addMilliseconds milliseconds = Std.Time.DateTime.ofPlainDateTime (dt.date.get.addMilliseconds milliseconds) tz
Subtract Millisecond.Offset
from a DateTime
.
Equations
- dt.subMilliseconds milliseconds = Std.Time.DateTime.ofPlainDateTime (dt.date.get.subMilliseconds milliseconds) tz
Add Nanosecond.Offset
to a DateTime
.
Equations
- dt.addNanoseconds nanoseconds = Std.Time.DateTime.ofPlainDateTime (dt.date.get.addNanoseconds nanoseconds) tz
Subtract Nanosecond.Offset
from a DateTime
.
Equations
- dt.subNanoseconds nanoseconds = Std.Time.DateTime.ofPlainDateTime (dt.date.get.subNanoseconds nanoseconds) tz
Add Day.Offset
to a DateTime
.
Subtracts Day.Offset
to a DateTime
.
Add Week.Offset
to a DateTime
.
Subtracts Week.Offset
to a DateTime
.
Add Month.Offset
to a DateTime
, it clips the day to the last valid day of that month.
Equations
- dt.addMonthsClip months = Std.Time.DateTime.ofPlainDateTime (dt.date.get.addMonthsClip months) tz
Subtracts Month.Offset
from a DateTime
, it clips the day to the last valid day of that month.
Equations
- dt.subMonthsClip months = Std.Time.DateTime.ofPlainDateTime (dt.date.get.subMonthsClip months) tz
Add Month.Offset
from a DateTime
, this function rolls over any excess days into the following
month.
Equations
- dt.addMonthsRollOver months = Std.Time.DateTime.ofPlainDateTime (dt.date.get.addMonthsRollOver months) tz
Subtract Month.Offset
from a DateTime
, this function rolls over any excess days into the following
month.
Equations
- dt.subMonthsRollOver months = Std.Time.DateTime.ofPlainDateTime (dt.date.get.subMonthsRollOver months) tz
Add Year.Offset
to a DateTime
, this function rolls over any excess days into the following
month.
Equations
- dt.addYearsRollOver years = Std.Time.DateTime.ofPlainDateTime (dt.date.get.addYearsRollOver years) tz
Add Year.Offset
to a DateTime
, it clips the day to the last valid day of that month.
Equations
- dt.addYearsClip years = Std.Time.DateTime.ofPlainDateTime (dt.date.get.addYearsClip years) tz
Subtract Year.Offset
from a DateTime
, this function rolls over any excess days into the following
month.
Equations
- dt.subYearsRollOver years = Std.Time.DateTime.ofPlainDateTime (dt.date.get.subYearsRollOver years) tz
Subtract Year.Offset
from to a DateTime
, it clips the day to the last valid day of that month.
Equations
- dt.subYearsClip years = Std.Time.DateTime.ofPlainDateTime (dt.date.get.subYearsClip years) tz
Creates a new DateTime tz
by adjusting the day of the month to the given days
value, with any
out-of-range days clipped to the nearest valid date.
Equations
- dt.withDaysClip days = Std.Time.DateTime.ofPlainDateTime (dt.date.get.withDaysClip days) tz
Creates a new DateTime tz
by adjusting the day of the month to the given days
value, with any
out-of-range days rolled over to the next month or year as needed.
Equations
- dt.withDaysRollOver days = Std.Time.DateTime.ofPlainDateTime (dt.date.get.withDaysRollOver days) tz
Creates a new DateTime tz
by adjusting the month to the given month
value.
The day remains unchanged, and any invalid days for the new month will be handled according to the clip
behavior.
Equations
- dt.withMonthClip month = Std.Time.DateTime.ofPlainDateTime (dt.date.get.withMonthClip month) tz
Creates a new DateTime tz
by adjusting the month to the given month
value.
The day is rolled over to the next valid month if necessary.
Equations
- dt.withMonthRollOver month = Std.Time.DateTime.ofPlainDateTime (dt.date.get.withMonthRollOver month) tz
Creates a new DateTime tz
by adjusting the year to the given year
value. The month and day remain unchanged,
and any invalid days for the new year will be handled according to the clip
behavior.
Equations
- dt.withYearClip year = Std.Time.DateTime.ofPlainDateTime (dt.date.get.withYearClip year) tz
Creates a new DateTime tz
by adjusting the year to the given year
value. The month and day are rolled
over to the next valid month and day if necessary.
Equations
- dt.withYearRollOver year = Std.Time.DateTime.ofPlainDateTime (dt.date.get.withYearRollOver year) tz
Creates a new DateTime tz
by adjusting the minute
component.
Equations
- dt.withMinutes minute = Std.Time.DateTime.ofPlainDateTime (dt.date.get.withMinutes minute) tz
Creates a new DateTime tz
by adjusting the second
component.
Equations
- dt.withSeconds second = Std.Time.DateTime.ofPlainDateTime (dt.date.get.withSeconds second) tz
Creates a new DateTime tz
by adjusting the nano
component.
Equations
- dt.withNanoseconds nano = Std.Time.DateTime.ofPlainDateTime (dt.date.get.withNanoseconds nano) tz
Creates a new DateTime tz
by adjusting the millisecond
component.
Equations
- dt.withMilliseconds milli = Std.Time.DateTime.ofPlainDateTime (dt.date.get.withMilliseconds milli) tz
Getter for the Nanosecond
inside of a DateTime
Equations
- dt.nanosecond = dt.date.get.time.nanosecond
Sets the DateTime
to the specified desiredWeekday
.
Equations
- dt.withWeekday desiredWeekday = Std.Time.DateTime.ofPlainDateTime (dt.date.get.withWeekday desiredWeekday) tz
Checks if the DateTime
is in a leap year.
Equations
- date.inLeapYear = date.year.isLeap
Determines the week of the year for the given DateTime
.
Equations
- date.weekOfYear = date.date.get.weekOfYear
Returns the unaligned week of the month for a DateTime
(day divided by 7, plus 1).
Equations
- date.weekOfMonth = date.date.get.weekOfMonth
Determines the week of the month for the given DateTime
. The week of the month is calculated based
on the day of the month and the weekday. Each week starts on Monday because the entire library is
based on the Gregorian Calendar.
Equations
- date.alignedWeekOfMonth = date.date.get.alignedWeekOfMonth
Converts a DateTime
to the number of days since the UNIX epoch.
Equations
- Std.Time.DateTime.ofDaysSinceUNIXEpoch days time tz = Std.Time.DateTime.ofPlainDateTime (Std.Time.PlainDateTime.ofDaysSinceUNIXEpoch days time) tz
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
- Std.Time.DateTime.instHSubDuration = { hSub := fun (x : Std.Time.DateTime tz) (y : Std.Time.DateTime tz₁) => x.toTimestamp - y.toTimestamp }
Equations
- Std.Time.DateTime.instHAddDuration = { hAdd := fun (x : Std.Time.DateTime tz) (y : Std.Time.Duration) => x.addNanoseconds y.toNanoseconds }
Equations
- Std.Time.DateTime.instHSubDuration_1 = { hSub := fun (x : Std.Time.DateTime tz) (y : Std.Time.Duration) => x.subNanoseconds y.toNanoseconds }