std.time
adjust
added in 3.0
(adjust t rep)(adjust t rep opts)adjust fields of a particular time (t/adjust (Date. 0) {:year 2000 :second 10} {:timezone “GMT”}) => #inst “2000-01-01T00:00:10.000-00:00”
after
added in 3.0
(after t1 t2)(after t1 t2 & more)compare dates, returns true if t1 is after t2, etc (t/after 2 (Date. 1) (common/calendar (Date. 0) (TimeZone/getTimeZone “GMT”))) => true
before
added in 3.0
(before t1 t2)(before t1 t2 & more)compare dates, returns true if t1 is before t2, etc (t/before 0 (Date. 1) (common/calendar (Date. 2) (TimeZone/getTimeZone “GMT”))) => true
calendar
added in 3.0
(calendar date timezone)creates a calendar to be used by the base date classes (-> ^Calendar (calendar (Date. 0) (TimeZone/getTimeZone “GMT”)) (.getTime)) => #inst “1970-01-01T00:00:00.000-00:00”
coerce
added in 3.0
(coerce t {:keys [type timezone], :as opts})adjust fields of a particular time (t/coerce 0 {:type Date}) => #inst “1970-01-01T00:00:00.000-00:00”
(t/coerce {:type clojure.lang.PersistentHashMap, :timezone “PST”, :long 915148800000, :year 1999, :month 1, :day 1, :hour 0, :minute 0 :second 0, :millisecond 0} {:type Date}) => #inst “1999-01-01T08:00:00.000-00:00”
day
added in 3.0
(day t)(day t opts)accesses the day representated by the instant (t/day 0 {:timezone “GMT”}) => 1
(t/day (Date. 0) {:timezone “EST”}) => 31
day-of-week
added in 3.0
(day-of-week t)(day-of-week t opts)accesses the day of week representated by the instant (t/day-of-week 0 {:timezone “GMT”}) => 4
(t/day-of-week (Date. 0) {:timezone “EST”}) => 3
default-timezone
added in 3.0
(default-timezone)(default-timezone tz)accesses the default timezone as a string
(default-timezone) ;; getter => “Asia/Ho_Chi_Minh”
(default-timezone “GMT”) ;; setter => “GMT”
default-type
added in 3.0
(default-type)(default-type cls)accesses the default type for datetime
(default-type) ;; getter => clojure.lang.PersistentArrayMap
(default-type Long) ;; setter => java.lang.Long
duration?
added in 3.0
(duration? obj)checks if an object implements the duration protocol (t/duration? 0) => true
(t/duration? {:weeks 1}) => true
earliest
added in 3.0
(earliest t1 t2 & more)returns the earliest date out of a range of inputs (t/earliest (Date. 0) (Date. 1000) (Date. 20000)) => #inst “1970-01-01T00:00:00.000-00:00”
epoch
added in 3.0
(epoch)(epoch opts)returns the beginning of unix epoch (t/epoch {:type Date}) => #inst “1970-01-01T00:00:00.000-00:00”
equal
added in 3.0
(equal t1 t2)(equal t1 t2 & more)compares dates, retruns true if all inputs are the same (t/equal 1 (Date. 1) (common/calendar (Date. 1) (TimeZone/getTimeZone “GMT”))) => true
format
added in 3.0
(format t pattern)(format t pattern {:keys [cached], :as opts})converts a date into a string
(f/format (Date. 0) “HH MM dd Z” {:timezone “GMT” :cached true}) => “00 01 01 +0000”
(f/format (common/calendar (Date. 0) (TimeZone/getTimeZone “GMT”)) “HH MM dd Z” {}) => “00 01 01 +0000”
(f/format (Timestamp. 0) “HH MM dd Z” {:timezone “PST”}) => “16 12 31 -0800”
(f/format (Date. 0) “HH MM dd Z”) => string?
from-long
added in 3.0
(from-long t)(from-long t opts)creates an instant from a long (-> (t/from-long 0 {:timezone “Asia/Kolkata” :type Calendar}) (t/to-map))
=> {:type java.util.GregorianCalendar, :timezone “Asia/Kolkata”, :long 0 :year 1970, :month 1, :day 1, :hour 5, :minute 30 :second 0, :millisecond 0}
from-map
added in 3.0
(from-map t)(from-map t opts)(from-map t {:keys [type timezone], :as opts} fill)creates an map from an instant (t/from-map {:type java.util.GregorianCalendar, :timezone “Asia/Kolkata”, :long 0 :year 1970, :month 1, :day 1, :hour 5, :minute 30 :second 0, :millisecond 0}
{:timezone "Asia/Kolkata"
:type Date})
=> #inst “1970-01-01T00:00:00.000-00:00”
get-timezone
added in 3.0
(get-timezone t)returns the contained timezone if exists (t/get-timezone 0) => nil
(t/get-timezone (common/calendar (Date. 0) (TimeZone/getTimeZone “EST”))) => “EST”
has-timezone?
added in 3.0
(has-timezone? t)checks if the instance contains a timezone (t/has-timezone? 0) => false
(t/has-timezone? (common/calendar (Date. 0) (TimeZone/getDefault))) => true
hour
added in 3.0
(hour t)(hour t opts)accesses the hour representated by the instant (t/hour 0 {:timezone “GMT”}) => 0
(t/hour (Date. 0) {:timezone “Asia/Kolkata”}) => 5
instant?
added in 3.0
(instant? obj)checks if an object implements the instant protocol (t/instant? 0) => true
(t/instant? (Date.)) => true
latest
added in 3.0
(latest t1 t2 & more)returns the latest date out of a range of inputs (t/latest (Date. 0) (Date. 1000) (Date. 20000)) => #inst “1970-01-01T00:00:20.000-00:00”
local-timezone
added in 3.0
(local-timezone)returns the current timezone as a string
(local-timezone) => “Asia/Ho_Chi_Minh”
millisecond
added in 3.0
(millisecond t)(millisecond t opts)accesses the millisecond representated by the instant (t/millisecond 1010 {:timezone “GMT”}) => 10
minus
added in 3.0
(minus t duration)(minus t duration opts)substracts a duration from the time (t/minus (Date. 0) {:years 1}) => #inst “1969-01-01T00:00:00.000-00:00”
(-> (t/from-map {:type java.time.ZonedDateTime :timezone “GMT”, :year 1970, :month 1, :day 1, :hour 0, :minute 0, :second 0, :millisecond 0}) (t/minus {:years 10 :months 1 :weeks 4 :days 2}) (t/to-map {:timezone “GMT”})) => {:type java.time.ZonedDateTime, :timezone “GMT”, :long -320803200000 :year 1959, :month 11, :day 2, :hour 0, :minute 0, :second 0, :millisecond 0}
minute
added in 3.0
(minute t)(minute t opts)accesses the minute representated by the instant (t/minute 0 {:timezone “GMT”}) => 0
(t/minute (Date. 0) {:timezone “Asia/Kolkata”}) => 30
month
added in 3.0
(month t)(month t opts)accesses the month representated by the instant (t/month 0 {:timezone “GMT”}) => 1
now
added in 3.0
(now)(now opts)returns the current datetime (t/now) ;; => #(instance? (t/default-type) %)
(t/now {:type Date}) => #(instance? Date %)
(t/now {:type Calendar}) => #(instance? Calendar %)
parse
(parse s pattern)(parse s pattern {:keys [cached], :as opts})testing format for java.time datastructures (-> (f/parse “00 00 01 01 01 1989 +0000” “ss mm HH dd MM yyyy Z” {:type Clock}) (map/to-map {} common/+default-keys+)) => {:type java.time.Clock$FixedClock, :timezone “Etc/GMT” :long 599619600000, :year 1989, :month 1, :day 1, :hour 1, :minute 0, :second 0, :millisecond 0}
(-> (f/parse “00 00 01 01 01 1989 -1000” “ss mm HH dd MM yyyy Z” {:type Clock}) (map/to-map {} common/+default-keys+)) => {:type java.time.Clock$FixedClock, :timezone “Etc/GMT-10”, :long 599583600000, :year 1989, :month 1, :day 1, :hour 1, :minute 0, :second 0, :millisecond 0}
(-> (f/parse “00 00 01 01 01 1989 +1000” “ss mm HH dd MM yyyy Z” {:type Clock}) (map/to-map {} common/+default-keys+)) => {:type java.time.Clock$FixedClock, :timezone “Etc/GMT+10”, :long 599655600000, :year 1989, :month 1, :day 1, :hour 1, :minute 0, :second 0, :millisecond 0}
plus
added in 3.0
(plus t duration)(plus t duration opts)adds a duration to the time (t/plus (Date. 0) {:weeks 2}) => #inst “1970-01-15T00:00:00.000-00:00”
(t/plus (Date. 0) 1000) => #inst “1970-01-01T00:00:01.000-00:00”
(t/plus (java.util.Date. 0) {:years 10 :months 1 :weeks 4 :days 2}) => #inst “1980-03-02T00:00:00.000-00:00”
representation?
added in 3.0
(representation? obj)checks if an object implements the representation protocol (t/representation? 0) => false
(t/representation? (common/calendar (Date. 0) (TimeZone/getTimeZone “GMT”))) => true
second
added in 3.0
(second t)(second t opts)accesses the second representated by the instant (t/second 1000 {:timezone “GMT”}) => 1
time-meta
added in 3.0
(time-meta cls)retrieves the meta-data for the time object (t/time-meta TimeZone) => {:base :zone}
to-length
added in 3.0
(to-length t)(to-length t rep)converts a object implementing IDuration to a long (t/to-length {:days 1}) => 86400000
to-long
added in 3.0
(to-long t)gets the long representation for the instant (t/to-long #inst “1970-01-01T00:00:10.000-00:00”) => 10000
to-map
added in 3.0
(to-map t)(to-map t opts)(to-map t {:keys [timezone], :as opts} ks)creates an map from an instant (-> (t/from-long 0 {:timezone “Asia/Kolkata” :type Date}) (t/to-map {:timezone “GMT”} :year :month :day)) => {:type java.util.Date, :timezone “GMT”, :long 0, :year 1970, :month 1, :day 1}
to-vector
added in 3.0
(to-vector t {:keys [timezone], :as opts} ks)converts an instant to an array representation (to-vector 0 {:timezone “GMT”} :all) => 1970 1 1 0 0 0 0
(to-vector (Date. 0) {:timezone “GMT”} :day) => 1970 1 1
(to-vector (common/calendar (Date. 0) (TimeZone/getTimeZone “EST”)) {} :month :day :year) => 12 31 1969
(to-vector (common/calendar (Date. 0) (TimeZone/getTimeZone “EST”)) {:timezone “GMT”} :month :day :year) => 1 1 1970
truncate
added in 3.0
(truncate t col)(truncate t col opts)truncates the time to a particular field (t/truncate #inst “1989-12-28T12:34:00.000-00:00” :hour {:timezone “GMT”}) => #inst “1989-12-28T12:00:00.000-00:00”
(t/truncate #inst “1989-12-28T12:34:00.000-00:00” :year {:timezone “GMT”}) => #inst “1989-01-01T00:00:00.000-00:00”
with-timezone
added in 3.0
(with-timezone t tz)returns the same instance in a different timezone (t/with-timezone 0 “EST”) => 0
wrap-proxy
added in 3.0
(wrap-proxy f)converts one representation to another via a third object, used by java.sql.Timestamp and others
year
added in 3.0
(year t)(year t opts)accesses the year representated by the instant (t/year 0 {:timezone “GMT”}) => 1970
(t/year (Date. 0) {:timezone “EST”}) => 1969