Parsing and printing are controlled by formatters. You can either use one of the built in ISO 8601 and a single RFC 822 formatters or define your own, e.g.:
(def built-in-formatter (formatters :basic-date-time)) (def custom-formatter (formatter "yyyyMMdd"))
To see a list of available built-in formatters and an example of a date-time printed in their format:
(show-formatters)
Once you have a formatter, parsing and printing are strait-forward:
=> (parse custom-formatter "20100311") #<DateTime 2010-03-11T00:00:00.000Z>
=> (unparse custom-formatter (date-time 2010 10 3)) "20101003"
By default the parse function always returns a DateTime instance with a UTC time zone, and the unparse function always represents a given DateTime instance in UTC. A formatter can be modified to different timezones, locales, etc with the functions with-zone, with-locale, with-chronology, and with-pivot-year.
### Utilities for parsing and unparsing DateTimes as Strings. Parsing and printing are controlled by formatters. You can either use one of the built in ISO 8601 and a single RFC 822 formatters or define your own, e.g.: (def built-in-formatter (formatters :basic-date-time)) (def custom-formatter (formatter "yyyyMMdd")) To see a list of available built-in formatters and an example of a date-time printed in their format: (show-formatters) Once you have a formatter, parsing and printing are strait-forward: => (parse custom-formatter "20100311") #<DateTime 2010-03-11T00:00:00.000Z> => (unparse custom-formatter (date-time 2010 10 3)) "20101003" By default the parse function always returns a DateTime instance with a UTC time zone, and the unparse function always represents a given DateTime instance in UTC. A formatter can be modified to different timezones, locales, etc with the functions with-zone, with-locale, with-chronology, and with-pivot-year.
Note: not all formatters have been implemented yet.
The pattern syntax is mostly compatible with java.text.SimpleDateFormat - time zone names cannot be parsed and a few more symbols are supported. All ASCII letters are reserved as pattern letters, which are defined as follows:
Symbol Meaning Presentation Examples
G era text AD C century of era (>=0) number 20 Y year of era (>=0) year 1996
x weekyear year 1996 w week of weekyear number 27 e day of week number 2 E day of week text Tuesday; Tue
y year year 1996 D day of year number 189 M month of year month July; Jul; 07 d day of month number 10
a halfday of day text PM K hour of halfday (0~11) number 0 h clockhour of halfday (1~12) number 12
H hour of day (0~23) number 0 k clockhour of day (1~24) number 24 m minute of hour number 30 s second of minute number 55 S fraction of second number 978 a meridiem text am; pm A meridiem text AM; PM
z time zone text Pacific Standard Time; PST Z time zone offset/id zone -0800; -08:00; America/Los_Angeles
' escape for text delimiter '' single quote literal '
The count of pattern letters determine the format.
Text: If the number of pattern letters is 4 or more, the full form is used; otherwise a short or abbreviated form is used if available.
Number: The minimum number of digits. Shorter numbers are zero-padded to this amount.
Year: Numeric presentation for year and weekyear fields are handled specially. For example, if the count of 'y' is 2, the year will be displayed as the zero-based year of the century, which is two digits.
Month: 3 or over, use text, otherwise use number.
Zone: 'Z' outputs offset without a colon, 'ZZ' outputs the offset with a colon, 'ZZZ' or more outputs the zone id.
Zone names: Time zone names ('z') cannot be parsed.
Any characters in the pattern that are not in the ranges of ['a'..'z'] and ['A'..'Z'] will be treated as quoted text. For instance, characters like ':', '.', ' ', '#' and '?' will appear in the resulting time text even they are not embraced within single quotes.
**Note: not all formatters have been implemented yet.** The pattern syntax is mostly compatible with java.text.SimpleDateFormat - time zone names cannot be parsed and a few more symbols are supported. All ASCII letters are reserved as pattern letters, which are defined as follows: Symbol Meaning Presentation Examples ------ ------- ------------ ------- G era text AD C century of era (>=0) number 20 Y year of era (>=0) year 1996 x weekyear year 1996 w week of weekyear number 27 e day of week number 2 E day of week text Tuesday; Tue y year year 1996 D day of year number 189 M month of year month July; Jul; 07 d day of month number 10 a halfday of day text PM K hour of halfday (0~11) number 0 h clockhour of halfday (1~12) number 12 H hour of day (0~23) number 0 k clockhour of day (1~24) number 24 m minute of hour number 30 s second of minute number 55 S fraction of second number 978 a meridiem text am; pm A meridiem text AM; PM z time zone text Pacific Standard Time; PST Z time zone offset/id zone -0800; -08:00; America/Los_Angeles ' escape for text delimiter '' single quote literal ' The count of pattern letters determine the format. **Text:** If the number of pattern letters is 4 or more, the full form is used; otherwise a short or abbreviated form is used if available. **Number:** The minimum number of digits. Shorter numbers are zero-padded to this amount. **Year:** Numeric presentation for year and weekyear fields are handled specially. For example, if the count of 'y' is 2, the year will be displayed as the zero-based year of the century, which is two digits. **Month:** 3 or over, use text, otherwise use number. **Zone:** 'Z' outputs offset without a colon, 'ZZ' outputs the offset with a colon, 'ZZZ' or more outputs the zone id. **Zone names:** Time zone names ('z') cannot be parsed. Any characters in the pattern that are not in the ranges of ['a'..'z'] and ['A'..'Z'] will be treated as quoted text. For instance, characters like ':', '.', ' ', '#' and '?' will appear in the resulting time text even they are not embraced within single quotes.
Map of ISO 8601 and a single RFC 822 formatters that can be used for parsing and, in most cases, printing.
Note: due to current implementation limitations, timezone information cannot be kept. Although the correct offset will be applied to UTC time if supplied.
Map of ISO 8601 and a single RFC 822 formatters that can be used for parsing and, in most cases, printing. Note: due to current implementation limitations, timezone information cannot be kept. Although the correct offset will be applied to UTC time if supplied.
(instant->map instant)
Returns a map representation of the given instant. It will contain the following keys: :years, :months, :days, :hours, :minutes and :seconds.
Returns a map representation of the given instant. It will contain the following keys: :years, :months, :days, :hours, :minutes and :seconds.
(parse s)
(parse fmt s)
Returns a DateTime instance in the UTC time zone obtained by parsing the given string according to the given formatter.
Returns a DateTime instance in the UTC time zone obtained by parsing the given string according to the given formatter.
(parse-local s)
(parse-local fmt s)
Returns a local DateTime instance obtained by parsing the given string according to the given formatter.
Returns a local DateTime instance obtained by parsing the given string according to the given formatter.
(parse-local-date s)
(parse-local-date fmt s)
Returns a local Date instance obtained by parsing the given string according to the given formatter.
Returns a local Date instance obtained by parsing the given string according to the given formatter.
(show-formatters)
(show-formatters dt)
Shows how a given DateTime, or by default the current time, would be formatted with each of the available printing formatters.
Shows how a given DateTime, or by default the current time, would be formatted with each of the available printing formatters.
(unparse {:keys [format-str formatters]} dt)
Returns a string representing the given DateTime instance in UTC and in the form determined by the given formatter.
Returns a string representing the given DateTime instance in UTC and in the form determined by the given formatter.
(unparse-duration duration)
Accepts a Period or Interval and outputs an absolute duration time in form of "1 day", "2 hours", "20 minutes", "2 days 1 hour 15 minutes" etc.
Accepts a Period or Interval and outputs an absolute duration time in form of "1 day", "2 hours", "20 minutes", "2 days 1 hour 15 minutes" etc.
(unparse-local {:keys [format-str formatters] :as fmt} dt)
Returns a string representing the given local DateTime instance in the form determined by the given formatter.
Returns a string representing the given local DateTime instance in the form determined by the given formatter.
(unparse-local-date {:keys [format-str formatters] :as fmt} dt)
Returns a string representing the given local Date instance in the form determined by the given formatter.
Returns a string representing the given local Date instance in the form determined by the given formatter.
(with-default-year f default-year)
Return a copy of a formatter that uses the given default year.
Return a copy of a formatter that uses the given default year.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close