Package com.ethlo.time
Class DateTime
java.lang.Object
com.ethlo.time.DateTime
- All Implemented Interfaces:
TemporalAccessor
Container class for parsed date/date-time data. The
getMostGranularField()
contains the highest granularity field found, like MONTH, MINUTE, SECOND.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final int
private final int
private final Field
private final int
private final int
private static final LeapSecondHandler
private final int
private final int
private final int
private final TimezoneOffset
private final int
private final int
-
Constructor Summary
ConstructorsConstructorDescriptionDateTime
(Field field, int year, int month, int day, int hour, int minute, int second, int nano, TimezoneOffset offset, int fractionDigits) DateTime
(Field field, int year, int month, int day, int hour, int minute, int second, int nano, TimezoneOffset offset, int fractionDigits, int charLength) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
assertMinGranularity
(Field field) boolean
int
int
Return the number of significant fraction digits in the second.int
getHour()
long
getLong
(TemporalField temporalField) int
int
getMonth()
Returns the most granular field found during parsingint
getNano()
Returns the time offset, if availableint
int
int
getYear()
int
hashCode()
boolean
includesGranularity
(Field field) Returns if the specified field is part of this date/date-timeboolean
isSupported
(TemporalField field) private static void
leapSecondCheck
(int year, int month, int day, int hour, int minute, int second, int nanos, TimezoneOffset offset) static DateTime
of
(int year, int month, int day, int hour, int minute, int second, int nanos, TimezoneOffset offset, int fractionDigits) Create a new instance with nanosecond granularity from the input parametersstatic DateTime
of
(int year, int month, int day, int hour, int minute, int second, TimezoneOffset offset) Create a new instance with second granularity from the input parametersstatic DateTime
of
(int year, int month, int day, int hour, int minute, TimezoneOffset offset) Create a new instance with minute granularity from the input parametersstatic DateTime
of
(OffsetDateTime dateTime) Create a new instance with data from the specified date-time.static DateTime
ofDate
(int year, int month, int day) Create a new instance with day granularity from the input parametersstatic DateTime
ofYear
(int year) Create a new instance with year granularity from the input parametersstatic DateTime
ofYearMonth
(int year, int month) Create a new instance with year-month granularity from the input parametersprivate long
This method will attempt to create an Instant from whatever granularity is available in the parsed year/date/date-time.Creates aLocalDate
, discarding any higher granularity fieldsCreates aLocalDateTime
discarding any timezone informationCreates anOffsetDateTime
toString()
Formats this date-time as a date/date-time with the same fields as was parsedtoString
(int fractionDigits) Formats this date-time as an RFC-3339 compatible string with the specified number of fractions in the second.private String
Formats this date-time as an ISO formatted string with the last included field as specified.toYear()
Creates aYear
discarding any higher granularity fieldsCreates aYearMonth
discarding any higher granularity fieldsprivate void
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.time.temporal.TemporalAccessor
get, query, range
-
Field Details
-
leapSecondHandler
-
field
-
year
private final int year -
month
private final int month -
day
private final int day -
hour
private final int hour -
minute
private final int minute -
second
private final int second -
nano
private final int nano -
offset
-
fractionDigits
private final int fractionDigits -
charLength
private final int charLength
-
-
Constructor Details
-
DateTime
public DateTime(Field field, int year, int month, int day, int hour, int minute, int second, int nano, TimezoneOffset offset, int fractionDigits) -
DateTime
public DateTime(Field field, int year, int month, int day, int hour, int minute, int second, int nano, TimezoneOffset offset, int fractionDigits, int charLength)
-
-
Method Details
-
of
public static DateTime of(int year, int month, int day, int hour, int minute, int second, TimezoneOffset offset) Create a new instance with second granularity from the input parameters- Parameters:
year
- yearmonth
- monthday
- dayhour
- hourminute
- minutesecond
- secondoffset
- timezone offset- Returns:
- A DateTime with second granularity
-
of
public static DateTime of(int year, int month, int day, int hour, int minute, int second, int nanos, TimezoneOffset offset, int fractionDigits) Create a new instance with nanosecond granularity from the input parameters- Parameters:
year
- yearmonth
- monthday
- dayhour
- hourminute
- minutesecond
- secondnanos
- nanosoffset
- timezone offsetfractionDigits
- The granularity of the fractional seconds field- Returns:
- A DateTime with nanosecond granularity
-
ofYear
Create a new instance with year granularity from the input parameters- Parameters:
year
- The year- Returns:
- a new instance with year granularity from the input parameters
-
ofYearMonth
Create a new instance with year-month granularity from the input parameters- Parameters:
year
- The yearmonth
- The month- Returns:
- a new instance with year-month granularity from the input parameters
-
ofDate
Create a new instance with day granularity from the input parameters- Parameters:
year
- The yearmonth
- The monthday
- The day- Returns:
- a new instance with day granularity from the input parameters
-
of
public static DateTime of(int year, int month, int day, int hour, int minute, TimezoneOffset offset) Create a new instance with minute granularity from the input parameters- Parameters:
year
- The yearmonth
- The monthday
- The dayhour
- The hourminute
- The minuteoffset
- The timezone offset- Returns:
- a new instance with minute granularity from the input parameters
-
of
Create a new instance with data from the specified date-time.- Parameters:
dateTime
- The date-time to copy data from- Returns:
- A new instance
-
leapSecondCheck
private static void leapSecondCheck(int year, int month, int day, int hour, int minute, int second, int nanos, TimezoneOffset offset) -
includesGranularity
Returns if the specified field is part of this date/date-time- Parameters:
field
- The field to check for- Returns:
- True if included, otherwise false
-
getYear
public int getYear() -
getMonth
public int getMonth() -
getDayOfMonth
public int getDayOfMonth() -
getHour
public int getHour() -
getMinute
public int getMinute() -
getSecond
public int getSecond() -
getNano
public int getNano() -
getOffset
Returns the time offset, if available- Returns:
- the time offset, if available
-
toYear
Creates aYear
discarding any higher granularity fields- Returns:
- the
Year
-
toYearMonth
Creates aYearMonth
discarding any higher granularity fields- Returns:
- the
YearMonth
-
toLocalDatetime
Creates aLocalDateTime
discarding any timezone information- Returns:
- the
LocalDateTime
-
toOffsetDatetime
Creates anOffsetDateTime
- Returns:
- the
OffsetDateTime
-
toLocalDate
Creates aLocalDate
, discarding any higher granularity fields- Returns:
- the
LocalDate
-
getMostGranularField
Returns the most granular field found during parsing- Returns:
- The field found
-
assertMinGranularity
-
toString
Formats this date-time as an ISO formatted string with the last included field as specified.- Parameters:
lastIncluded
- The last specified field to include- Returns:
- The formatted date/date-time string
-
toString
Formats this date-time as an RFC-3339 compatible string with the specified number of fractions in the second.- Parameters:
fractionDigits
- The number of fractions to include- Returns:
- The formatted date/date-time string
-
toString
-
getFractionDigits
public int getFractionDigits()Return the number of significant fraction digits in the second.- Returns:
- The number of significant fraction digits
-
toString
Formats this date-time as a date/date-time with the same fields as was parsed -
equals
-
hashCode
public int hashCode() -
isSupported
- Specified by:
isSupported
in interfaceTemporalAccessor
-
getLong
- Specified by:
getLong
in interfaceTemporalAccessor
-
toInstant
This method will attempt to create an Instant from whatever granularity is available in the parsed year/date/date-time.
Missing fields will be replaced by their lowest allowed value: 1 for month and day, 0 for any missing time component.
NOTE: If there is no time-zone defined, UTC will be assumed
- Returns:
- An instant representing the point in time.
-
toEpochSeconds
private long toEpochSeconds() -
validated
private void validated() -
getParseLength
public int getParseLength() -
toLocalTime
-