Package org.apache.groovy.json.internal
Class Dates
java.lang.Object
org.apache.groovy.json.internal.Dates
Date helpers used by the JSON parser for supported timestamp formats.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intLength of a JSON timestamp with millisecond precision. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic DatefromISO8601(char[] charArray, int from, int to) static DatefromJsonDate(char[] charArray, int from, int to) Parses a supported JSON timestamp with millisecond precision.static booleanisISO8601(char[] charArray, int start, int to) Checks whether a slice matches the parser's supported ISO-8601 layouts.static booleanisISO8601QuickCheck(char[] charArray, int start, int to) Performs a quick length and separator check for ISO-8601-like values.static booleanisJsonDate(char[] charArray, int start, int to) Checks whether a slice matches the parser's JSON date layout.static OffsetDateTimeoffsetDateTimeFromISO8601(char[] charArray, int from, int to) Reads an ISO-8601 form as an offset date-time, keeping the offset the text carried.static OffsetDateTimeoffsetDateTimeFromJsonDate(char[] charArray, int from, int to) Reads a JSON-date form as an offset date-time.static DateCreates aDatefrom date-time fields in the supplied time zone.static DatetoDate(TimeZone tz, int year, int month, int day, int hour, int minute, int second, int milliseconds) Creates aDatefrom date-time fields including milliseconds.static longutc(long time) Returns the epoch milliseconds for the supplied instant using a UTC-based calendar.
-
Field Details
-
JSON_TIME_LENGTH
public static final int JSON_TIME_LENGTHLength of a JSON timestamp with millisecond precision.
-
-
Constructor Details
-
Dates
public Dates()
-
-
Method Details
-
utc
public static long utc(long time) Returns the epoch milliseconds for the supplied instant using a UTC-based calendar.- Parameters:
time- epoch milliseconds- Returns:
- UTC-normalized epoch milliseconds
-
toDate
public static Date toDate(TimeZone tz, int year, int month, int day, int hour, int minute, int second) Creates aDatefrom date-time fields in the supplied time zone.- Parameters:
tz- time zone to applyyear- year valuemonth- month value from1to12day- day of monthhour- hour of dayminute- minute of hoursecond- second of minute- Returns:
- created date
-
toDate
public static Date toDate(TimeZone tz, int year, int month, int day, int hour, int minute, int second, int milliseconds) Creates aDatefrom date-time fields including milliseconds.- Parameters:
tz- time zone to applyyear- year valuemonth- month value from1to12day- day of monthhour- hour of dayminute- minute of hoursecond- second of minutemilliseconds- millisecond value- Returns:
- created date
-
offsetDateTimeFromISO8601
Reads an ISO-8601 form as an offset date-time, keeping the offset the text carried. Reads the same fields asfromISO8601(char[], int, int)rather than handing the text to a formatter, so that the scan stays as cheap as the one the parsers already do.- Parameters:
charArray- buffer holding the tokenfrom- start index, inclusiveto- end index, exclusive- Returns:
- the value, or
nullif the text is not in this form
-
offsetDateTimeFromJsonDate
Reads a JSON-date form as an offset date-time. That form carries no offset of its own and is read as UTC, asfromJsonDate(char[], int, int)reads it.- Parameters:
charArray- buffer holding the tokenfrom- start index, inclusiveto- end index, exclusive- Returns:
- the value, or
nullif the text is not in this form
-
fromISO8601
-
fromJsonDate
Parses a supported JSON timestamp with millisecond precision.- Parameters:
charArray- source character bufferfrom- inclusive start indexto- exclusive end index- Returns:
- parsed date, or
nullwhen the slice is not a supported JSON date value
-
isISO8601
public static boolean isISO8601(char[] charArray, int start, int to) Checks whether a slice matches the parser's supported ISO-8601 layouts.- Parameters:
charArray- source character bufferstart- inclusive start indexto- exclusive end index- Returns:
truewhen the slice matches a supported ISO-8601 layout
-
isISO8601QuickCheck
public static boolean isISO8601QuickCheck(char[] charArray, int start, int to) Performs a quick length and separator check for ISO-8601-like values.- Parameters:
charArray- source character bufferstart- inclusive start indexto- exclusive end index- Returns:
truewhen the slice looks like an ISO-8601 value
-
isJsonDate
public static boolean isJsonDate(char[] charArray, int start, int to) Checks whether a slice matches the parser's JSON date layout.- Parameters:
charArray- source character bufferstart- inclusive start indexto- exclusive end index- Returns:
truewhen the slice matches the JSON date layout
-