(+ o & os)Adds all of theos to the time entityo.+ is not commutative, the first argument is always the entity which will accumulate the rest of the arguments.
(j/+ (j/local-date 2015) (j/years 1))=> <java.time.LocalDate "2016-01-01">(- o & os)Subtracts all of theos from the time entityo
(j/- (j/local-date 2015) (j/years 1))=> <java.time.LocalDate "2014-01-01">(< x)(< x y)(< x y & more)Returnstrue if time entities are ordered from the earliest to the latest (same semantics as<), otherwisefalse.
(j/< (local-date 2009) (local-date 2010) (local-date 2011))=> true(j/< (interval (instant 10000) (instant 1000000)) (instant 99999999))=> true(<= x)(<= x y)(<= x y & more)Returnstrue if time entities are ordered from the earliest to the latest (same semantics as<=), otherwisefalse.
(j/<= (local-date 2009) (local-date 2010) (local-date 2011));=> true(j/<= (interval (instant 10000) (instant 1000000)) (instant 99999999));=> true(= x)(= x y)(= x y & more)Returns true if all time entities represent the same time, otherwise false.
j/= is not commutative, the first argument is always the entity which will accumulate the rest of the arguments.
e.g., (j/= (j/day-of-week :thursday) :thursday) => true
(> x)(> x y)(> x y & more)Returnstrue if time entities are ordered from the latest to the earliest (same semantics as>), otherwisefalse.
(j/> (local-date 2011) (local-date 2010) (local-date 2009))=> true(j/> (instant 99999999) (interval (instant 10000) (instant 1000000)))=> true(>= x)(>= x y)(>= x y & more)Returnstrue if time entities are ordered from the latest to the earliest (same semantics as>=), otherwisefalse.
(j/>= (local-date 2011) (local-date 2010) (local-date 2009));=> true(j/>= (instant 99999999) (interval (instant 10000) (instant 1000000)));=> true(adjust entity adjuster & args)Adjusts the temporalentity using the providedadjuster with optionalargs.
The adjuster should either be a keyword which resolves to one of the predefined adjusters (seejava-time.repl/show-adjusters) an instance ofTemporalAdjuster or a function which returns another temporal entity when applied to the given one:
(adjust (local-date 2015 1 1) :next-working-day)=> #<LocalDate 2015-1-2>(adjust (local-date 2015 1 1) :first-in-month :monday)=> #<LocalDate 2015-1-5>(adjust (local-date 2015 1 1) plus (days 1))=> #<LocalDate 2015-1-2>(advance-clock! clock amount)Advances theclock by the given timeamount.
This mutates the mock clock.
(after? x)(after? x y)(after? x y & more)Returnstrue if time entities are ordered from the latest to the earliest (same semantics as>), otherwisefalse.
(after? (local-date 2011) (local-date 2010) (local-date 2009))=> true(after? (instant 99999999) (interval (instant 10000) (instant 1000000)))=> true(am-pm)(am-pm v)(am-pm fmt arg)Returns theAmPm for the given keyword name (:am or:pm), ordinal or entity. Current AM/PM if no arguments given.
(as o k)(as o k1 k2)(as o k1 k2 & ks)Values of property/unit identified by keys/objectsks of the temporal entityo, e.g.
(as (duration 1 :hours) :minutes)=> 60(as (local-date 2015 9) :year :month-of-year)=> [2015 9](as-map e)(as-map e value-fn)Converts a time entity to a map of property key -> value as defined by the passed invalue-fn. By default the actual value of the unit/field is produced.
(as-map (duration))=> {:nanos 0, :seconds 0}(as-map (local-date 2015 1 1))=> {:year 2015, :month-of-year 1, :day-of-month 1, ...}(available-zone-ids)Returns a set of string identifiers for all available ZoneIds.
(before? x)(before? x y)(before? x y & more)Returnstrue if time entities are ordered from the earliest to the latest (same semantics as<), otherwisefalse.
(before? (local-date 2009) (local-date 2010) (local-date 2011))=> true(before? (interval (instant 10000) (instant 1000000)) (instant 99999999))=> true(convert-amount amount from-unit to-unit)Converts an amount from one unit to another. Returns a map of:
:whole - the whole part of the conversion in theto unit:remainder - the remainder in thefrom unitArguments may be keywords or instances ofTemporalUnit.
Converts between precise units–nanos up to weeks—treating days as exact multiples of 24 hours. Also converts between imprecise units—months up to millennia. SeeChronoUnit andIsoFields for all of the supported units. Does not convert between precise and imprecise units.
ThrowsArithmeticException if long overflow occurs during computation.
(convert-amount 10000 :seconds :hours)=> {:remainder 2800 :whole 2}(day-of-month)(day-of-month arg)(day-of-month fmt arg)Returns theDayOfMonth for the given entity, clock, zone or day of month. Current day of month if no arguments given.
(day-of-month? o)Returns true ifo isorg.threeten.extra.DayOfMonth, otherwise false.
(day-of-week)(day-of-week v)(day-of-week fmt arg)Returns theDayOfWeek for the given day keyword name (e.g.:monday), ordinal or entity. Current day if no arguments given.
(day-of-year)(day-of-year arg)(day-of-year fmt arg)Returns theDayOfYear for the given entity, clock, zone or day of year. Current day of year if no arguments given.
(day-of-year? o)Returns true ifo isorg.threeten.extra.DayOfYear, otherwise false.
(duration)(duration arg0)(duration arg0 arg1)Creates a duration - a temporal entity representing standard days, hours, minutes, millis, micros and nanos. The duration itself contains only seconds and nanos as properties.
Given one argument will:
TemporalAmountGiven two arguments will:
Temporals(duration 100 :seconds)(duration? v)Returns true ifv is an instance of java.time.Duration, otherwise false.
(field k)(field entity k)Returns aTemporalField for the given keyk or extracts the field from the given temporalentity.
You can see predefined fields viajava-time.repl/show-fields.
If you want to make your own custom TemporalFields resolvable, you need to rebind thejava-time.properties/*fields* to a customjava_time.properties.FieldGroup.
(fixed-clock)(fixed-clock i)(fixed-clock i z)Creates a fixed clock either at the current instant or at the supplied instant/instant + zone.
(format o)(format fmt o)Formats the given time entity as a string.
Accepts something that can be converted to aDateTimeFormatter or a formatter key, e.g.:iso-offset-time, as a first argument. Given one argument uses the default format.
(format (zoned-date-time))=> "2015-03-21T09:22:46.677800+01:00[Europe/London]"(format :iso-date (zoned-date-time))"2015-03-21+01:00"(formatter fmt)(formatter fmt arg1)Constructs a DateTimeFormatter out of a
Accepts a map of options as an optional second argument:
resolver-style - either:strict,:smart or:lenientcase - either:insensitive or:sensitive (defaults to :sensitive)(friday? i)Returns true if the given time entity with theday-of-week property falls on a Friday, otherwise false.
(instant)(instant arg0)(instant arg0 arg1)Creates anInstant. The following arguments are supported:
(instant->sql-timestamp instant-or-millis)Creates ajava.sql.Timestamp from the providedinstant-or-millis - a millisecond numeric time value or something convertible to anInstant.
Please consider using the JSR-310 Java Time types instead ofjava.sql.Timestamp if your drivers support them.
java.sql.Timestamp is a version of ajava.util.Date supposed to be used as a local date-time (no time zone) for the purposes of conversion from/to native JDBC driver TIMESTAMP types.
(instant? v)Returns true ifv is an instance of java.time.Instant, otherwise false.
(interval o)(interval a b)Constructs an interval out of a string, start and end instants or a start + duration:
(j/interval "2010-01-01T00:00:00Z/2013-01-01T00:00:00Z")=> #<Interval 2010-01-01T00:00:00Z/2013-01-01T00:00:00Z>(j/interval (j/instant 100000) (j/instant 1000000))=> #<Interval 1970-01-01T00:01:40Z/1970-01-01T00:16:40Z>(j/interval (j/instant 100000) (j/duration 15 :minutes))=> #<Interval 1970-01-01T00:01:40Z/1970-01-01T00:16:40Z>Requires the optionalthreeten-extra dependency.
(iterate f initial v & vs)Returns a lazy sequence ofinitial ,(apply f initial v vs), etc.
Useful when you want to produce a sequence of temporal entities, for example:
(iterate plus (days 0) 1)=> (#<Period P0D> #<Period P1D> #<Period P2D> ...)(iterate plus (local-date 2010 1 1) (years 1))=> (#<LocalDate 2010-01-01> #<LocalDate 2011-01-01> ...)(iterate adjust (local-date 2010 1 1) :next-working-day)=> (#<LocalDate 2010-01-01> #<LocalDate 2010-01-04> ...)(java-date)(java-date a)(java-date a b)(local-date)(local-date arg0)(local-date arg0 arg1)(local-date arg0 arg1 arg2)Creates aLocalDate. The following arguments are supported:
(local-date-time)(local-date-time y m d h)(local-date-time y m d h mm)(local-date-time y m d h mm ss)(local-date-time y m d h mm ss n)(local-date-time arg0)(local-date-time arg0 arg1)(local-date-time arg0 arg1 arg2)Creates aLocalDateTime. The following arguments are supported:
three and more arguments - year/month/day/…
(local-date-time? v)Returns true ifv is an instance of java.time.LocalDateTime, otherwise false.
(local-date? v)Returns true ifv is an instance of java.time.LocalDate, otherwise false.
(local-time)(local-time h m s nn)(local-time arg0)(local-time arg0 arg1)(local-time arg0 arg1 arg2)Creates aLocalTime. The following arguments are supported:
(local-time? v)Returns true ifv is an instance of java.time.LocalTime, otherwise false.
(max o & os)Latest/longest of the given time entities. Entities should be of the same type
(min o & os)Earliest/shortest of the given time entities. Entities should be of the same type
(minus o & os)Subtracts all of theos from the time entityo
(j/minus (j/local-date 2015) (j/years 1))=> <java.time.LocalDate "2014-01-01">(mock-clock)(mock-clock instant)(mock-clock instant zone)Returns a mock implementation of thejava.time.Clock. The mock supportsadvance-clock! operation which allows to move the time in the clock, e.g.:
(let [clock (mock-clock 0 "UTC")] (with-clock clock (is (= (value clock) 0)) (is (= (instant) (instant 0))) (advance-clock! clock (j/millis 1)) (is (= (value clock) 1)) (is (= (instant) (instant 1)))))You can move the clock back via advancing by a negative temporal amount.
Creates a clock at epoch in the default time zone when called without arguments.
(monday? i)Returns true if the given time entity with theday-of-week property falls on a Monday, otherwise false.
(month)(month v)(month fmt arg)Returns theMonth for the given month keyword name (e.g.:january), ordinal or entity. Current month if no arguments given.
(month-day)(month-day arg)(month-day a b)Returns theMonthDay for the given entity, string, clock, zone or month/day combination. Current month-day if no arguments given.
(move-end-by i & os)Moves the end instant of the interval by the sum of given periods/durations/numbers of milliseconds.
(move-start-by (interval 0 10000) (millis 1000) (seconds 1))=> #<Interval ...:00Z/...:12Z>Fails if the new end instant falls before the start instant.
(move-end-by (interval 0 10000) (millis -11000))=> DateTimeException...(move-end-to i new-end)Moves the end of the interval to the given instant (or something convertible to an instant):
(move-end-to (interval 0 10000) (instant 15000))=> #<Interval ...:00Z/...:15Z>Fails if the new end instant falls before the start instant:
(move-end-to (interval 0 10000) (millis -1))=> DateTimeException...(move-start-by i & os)Moves the start instant of the interval by the sum of given periods/durations/numbers of milliseconds:
(move-start-by (interval 0 10000) (millis 1000) (seconds 1))=> #<Interval ...:02Z/...:10Z>Fails if the new start instant falls after the end instant.
(move-start-by (interval 0 10000) (millis 11000));=> DateTimeException...(move-start-to i new-start)Moves the start instant of the interval to the given instant (or something convertible to an instant):
(move-start-to (interval 0 10000) (instant 5000))=> #<Interval ...:05Z/...:10Z>Fails if the new start instant falls after the end instant:
(move-start-to (interval 0 10000) (millis 15000))=> DateTimeException...(not-after? x)(not-after? x y)(not-after? x y & more)Returnstrue if time entities are ordered from the earliest to the latest (same semantics as<=), otherwisefalse.
(not-after? (local-date 2009) (local-date 2010) (local-date 2011));=> true(not-after? (interval (instant 10000) (instant 1000000)) (instant 99999999));=> true(not-before? x)(not-before? x y)(not-before? x y & more)Returnstrue if time entities are ordered from the latest to the earliest (same semantics as>=), otherwisefalse.
(not-before? (local-date 2011) (local-date 2010) (local-date 2009));=> true(not-before? (instant 99999999) (interval (instant 10000) (instant 1000000)));=> true(offset-clock d)(offset-clock c d)Creates a clock offset from the current/provided clock by a givenduration.
(offset-date-time)(offset-date-time y m d h)(offset-date-time y mo d h m)(offset-date-time y mo d h m s)(offset-date-time y mo d h m s n)(offset-date-time y mo d h m s n o)(offset-date-time arg0)(offset-date-time arg0 arg1)(offset-date-time arg0 arg1 arg2)Creates anOffsetDateTime. The following arguments are supported:
If zone offset is not specified, default will be used. You can check the default offset by invoking(zone-offset).
(offset-date-time? v)Returns true ifv is an instance of java.time.OffsetDateTime, otherwise false.
(offset-time)(offset-time h m s)(offset-time h m s n)(offset-time h m s n o)(offset-time arg0)(offset-time arg0 arg1)Creates anOffsetTime. The following arguments are supported:
If zone offset is not specified, default will be used. You can check the default offset by invoking(zone-offset).
(offset-time? v)Returns true ifv is an instance of java.time.OffsetTime, otherwise false.
(period)(period arg0)(period arg0 arg1)(period arg0 arg1 arg2)Creates a period - a temporal entity consisting of years, months and days.
Given one argument will
TemporalAmountGiven two arguments will
(period 10 :months)Given three arguments will create a year/month/day period.
(plus o & os)Adds all of theos to the time entityo.plus is not commutative, the first argument is always the entity which will accumulate the rest of the arguments.
(j/plus (j/local-date 2015) (j/years 1))=> <java.time.LocalDate "2016-01-01">(quarter)(quarter v)(quarter fmt arg)Returns theQuarter for the given quarter keyword name (e.g.:q1), ordinal or entity. Current quarter if no arguments given.
(saturday? i)Returns true if the given time entity with theday-of-week property falls on a Saturday, otherwise false.
(set-clock! clock time)Sets theclock to the giventime.
This mutates the mock clock.
(smallest-max-value p)Smallest maximum value of this property, e.g. 28th of February for months
(sql-date)(sql-date arg0)(sql-date arg0 arg1)(sql-date arg0 arg1 arg2)Creates ajava.sql.Date out of any combination of arguments valid forlocal-date or theLocalDate itself.
Please consider using the JSR-310 Java Time types instead ofjava.sql.Date if your drivers support them.
Even thoughjava.sql.Date extends ajava.util.Date, it’s supposed to be used as a local date (no time component or time zone) for the purposes of conversion from/to native JDBC driver DATE types.
(sql-time)(sql-time arg0)(sql-time arg0 arg1)(sql-time arg0 arg1 arg2)Creates ajava.sql.Time out of any combination of arguments valid forlocal-time (except the nanos constructor) or theLocalTime itself.
Please consider using the JSR-310 Java Time types instead ofjava.sql.Time if your drivers support them.
Even thoughjava.sql.Time extends ajava.util.Date, it’s supposed to be used as a local time (no date component or time zone) for the purposes of conversion from/to native JDBC driver TIME types.
(sql-timestamp)(sql-timestamp arg0)(sql-timestamp arg0 arg1)(sql-timestamp arg0 arg1 arg2)(sql-timestamp arg0 arg1 arg2 arg3)(sql-timestamp arg0 arg1 arg2 arg3 arg4)(sql-timestamp arg0 arg1 arg2 arg3 arg4 arg5)(sql-timestamp arg0 arg1 arg2 arg3 arg4 arg5 arg6)Creates ajava.sql.Timestamp in the local time zone out of any combination of arguments valid forlocal-date-time or theLocalDateTime itself.
Does not supportTimestamp construction from anInstant or a long millis value—please useinstant->sql-timestamp for this purpose.
Please consider using the JSR-310 Java Time types instead ofjava.sql.Timestamp if your drivers support them.
java.sql.Timestamp is a version of ajava.util.Date supposed to be used as a local date-time (no time zone) for the purposes of conversion from/to native JDBC driver TIMESTAMP types.
(sunday? i)Returns true if the given time entity with theday-of-week property falls on a Sunday, otherwise false.
(system-clock)(system-clock k)Creates a system clock. In the default time zone if called without arguments, otherwise accepts a Zone Id.
(thursday? i)Returns true if the given time entity with theday-of-week property falls on a Thursday, otherwise false.
(tick-clock d)(tick-clock c d)Creates a clock wrapping system/provided clock that only ticks as per specified duration.
(time-between o e u)Time between temporal entitieso ande in unitu.
(j/time-between (j/local-date 2015) (j/local-date 2016) :days)=> 365(j/time-between :days (j/local-date 2015) (j/local-date 2016))=> 365(to-java-date o)Converts a date entity to ajava.util.Date.
Deprecated: This function only has a single arity and works for entities directly convertible tojava.time.Instant. Please consider usingjava-date instead.
(to-millis-from-epoch o)Converts a date entity to along representing the number of milliseconds from epoch.
(to-sql-date o)Converts a local date entity to ajava.sql.Date.
Deprecated: This function only has a single arity and works for entities directly convertible tojava.time.LocalDate. Please consider usingsql-date instead.
(to-sql-timestamp o)Converts a date entity to ajava.sql.Timestamp.
Deprecated: This function only has a single arity and works for entities directly convertible tojava.time.Instant. Please consider usingsql-timestamp instead.
(truncate-to o u)Truncates this entity to the specified time unit. Only works for units that divide into the length of standard day without remainder (up to:days).
(tuesday? i)Returns true if the given time entity with theday-of-week property falls on a Tuesday, otherwise false.
(unit k)(unit entity k)Returns aTemporalUnit for the given keyk or extracts the field from the given temporalentity.
You can see predefined units viajava-time.repl/show-units.
If you want to make your own custom TemporalUnits resolvable, you need to rebind thejava-time.properties/*units* to a customjava_time.properties.UnitGroup.
(value-range min max)(value-range arg0)Creates aValueRange given themin andmax amounts or a map of:min-smallest,:max-smallest,:min-largest and:max-largest.
(wednesday? i)Returns true if the given time entity with theday-of-week property falls on a Wednesday, otherwise false.
(when-joda-time-loaded & body)Execute thebody when Joda-Time classes are found on the classpath.
Take care - when AOT-compiling code using this macro, the Joda-Time classes must be on the classpath at compile time!
(with-clock c & forms)Executes the givenforms in the scope of the providedclock.
All the temporal entities that get created without parameters will inherit their values from the clock:
(with-clock (system-clock “Europe/London”) (zone-id)) => #<java.time.ZoneRegion Europe/London>
(with-clock-fn c f)Executes the given function in the scope of the provided clock. All the temporal entities that get created without parameters will inherit their values from the clock.
(with-largest-min-value p)Underlying temporal entity with the value set to the largest minimum available for this property
(with-max-value p)Underlying temporal entity with the value set to the maximum available for this property
(with-min-value p)Underlying temporal entity with the value set to the minimum available for this property
(with-offset o offset)Sets the offset to the specified value ensuring that the local time stays the same.
(offset-time 10 30 0 0 +2) => #<java.time.OffsetTime 10:30+02:00> (with-offset *1 +3) => #<java.time.OffsetTime 10:30+03:00>
(with-offset-same-instant o offset)Sets the offset to the specified value ensuring that the result has the same instant, e.g.:
(offset-time 10 30 0 0 +2) => #<java.time.OffsetTime 10:30+02:00> (with-offset-same-instant *1 +3) => #<java.time.OffsetTime 11:30+03:00>
(with-smallest-max-value p)Underlying temporal entity with the value set to the smallest maximum available for this property
(with-value p v)Underlying temporal entity with the value of this property set tov
(with-zone-same-instant zdt z)Sets the zone to the specified value ensuring that the result has the same instant, e.g.:
(zoned-date-time 2015) => #<java.time.ZonedDateTime 2015-01-01T00:00+00:00Europe/London> (with-zone-same-instant *1 “America/New_York”) => #<java.time.ZonedDateTime 2014-12-31T18:00-05:00America/New_York>
(year)(year arg)(year fmt arg)Returns theYear for the given entity, string, clock, zone or number. Current year if no arguments given.
(year-month)(year-month arg)(year-month a b)Returns theYearMonth for the given entity, string, clock, zone or month/day combination. Current year-month if no arguments given.
(year-quarter)(year-quarter arg)(year-quarter a b)Returns theYearQuarter for the given entity, clock, zone or year with quarter. Current year quarter if no arguments given.
(year-quarter? o)Returns true ifo isorg.threeten.extra.YearQuarter, otherwise false.
(zone-id)(zone-id arg0)(zone-id arg0 arg1)Creates aZoneId from a string identifier,java.util.TimeZone or extracts from another temporal entity.
Returns default system zone id if no arguments provided.
Given two arguments will use the second as the offset.
(zone-id? v)Returns true ifv is an instance of java.time.ZoneId, otherwise false.
(zone-offset)(zone-offset o)(zone-offset h m)(zone-offset h m s)Creates aZoneOffset from a string identifier (e.g. “+01”), a number of hours/hours and minutes/hours, minutes and seconds or extracts from another temporal entity.
Returns default system zone offset if no arguments provided.
(zoned-date-time)(zoned-date-time y m d h)(zoned-date-time y mo d h m)(zoned-date-time y mo d h m s)(zoned-date-time y mo d h m s n)(zoned-date-time y mo d h m s n o)(zoned-date-time arg0)(zoned-date-time arg0 arg1)(zoned-date-time arg0 arg1 arg2)Creates aZonedDateTime. The following arguments are supported:
If zone id is not specified, default zone id will be used. You can check the default zone by invoking(zone-id).
(zoned-date-time? v)Returns true ifv is an instance of java.time.ZonedDateTime, otherwise false.