/** * Obtains a {@code YearMonth} set to the current system millisecond time * using <code>ISOChronology</code> in the default time zone. * The resulting object does not use the zone. * * @return the current year-month, not null * @since 2.0 */ public static YearMonth now() { return new YearMonth(); }
/** * Obtains a {@code YearMonth} set to the current system millisecond time * using <code>ISOChronology</code> in the default time zone. * The resulting object does not use the zone. * * @return the current year-month, not null * @since 2.0 */ public static YearMonth now() { return new YearMonth(); }
/** * Obtains a {@code YearMonth} set to the current system millisecond time * using the specified chronology. * The resulting object does not use the zone. * * @param chronology the chronology, not null * @return the current year-month, not null * @since 2.0 */ public static YearMonth now(Chronology chronology) { if (chronology == null) { throw new NullPointerException("Chronology must not be null"); } return new YearMonth(chronology); }
/** * Obtains a {@code YearMonth} set to the current system millisecond time * using <code>ISOChronology</code> in the specified time zone. * The resulting object does not use the zone. * * @param zone the time zone, not null * @return the current year-month, not null * @since 2.0 */ public static YearMonth now(DateTimeZone zone) { if (zone == null) { throw new NullPointerException("Zone must not be null"); } return new YearMonth(zone); }
/** * Obtains a {@code YearMonth} set to the current system millisecond time * using the specified chronology. * The resulting object does not use the zone. * * @param chronology the chronology, not null * @return the current year-month, not null * @since 2.0 */ public static YearMonth now(Chronology chronology) { if (chronology == null) { throw new NullPointerException("Chronology must not be null"); } return new YearMonth(chronology); }
/** * Obtains a {@code YearMonth} set to the current system millisecond time * using <code>ISOChronology</code> in the specified time zone. * The resulting object does not use the zone. * * @param zone the time zone, not null * @return the current year-month, not null * @since 2.0 */ public static YearMonth now(DateTimeZone zone) { if (zone == null) { throw new NullPointerException("Zone must not be null"); } return new YearMonth(zone); }
/** * Constructs a YearMonth from a <code>java.util.Date</code> * using exactly the same field values avoiding any time zone effects. * <p> * Each field is queried from the Date and assigned to the YearMonth. * <p> * This factory method always creates a YearMonth with ISO chronology. * * @param date the Date to extract fields from * @return the created YearMonth, never null * @throws IllegalArgumentException if the calendar is null * @throws IllegalArgumentException if the year or month is invalid for the ISO chronology */ @SuppressWarnings("deprecation") public static YearMonth fromDateFields(Date date) { if (date == null) { throw new IllegalArgumentException("The date must not be null"); } return new YearMonth(date.getYear() + 1900, date.getMonth() + 1); }
/** * Parses a {@code YearMonth} from the specified string using a formatter. * * @param str the string to parse, not null * @param formatter the formatter to use, not null * @since 2.0 */ public static YearMonth parse(String str, DateTimeFormatter formatter) { LocalDate date = formatter.parseLocalDate(str); return new YearMonth(date.getYear(), date.getMonthOfYear()); }
/** * Parses a {@code YearMonth} from the specified string using a formatter. * * @param str the string to parse, not null * @param formatter the formatter to use, not null * @since 2.0 */ public static YearMonth parse(String str, DateTimeFormatter formatter) { LocalDate date = formatter.parseLocalDate(str); return new YearMonth(date.getYear(), date.getMonthOfYear()); }
/** * Sets this field in a copy of the YearMonth. * <p> * The YearMonth attached to this property is unchanged by this call. * Instead, a new instance is returned. * * @param value the value to set the field in the copy to * @return a copy of the YearMonth with the field value changed * @throws IllegalArgumentException if the value isn't valid */ public YearMonth setCopy(int value) { int[] newValues = iBase.getValues(); newValues = getField().set(iBase, iFieldIndex, newValues, value); return new YearMonth(iBase, newValues); }
/** * Sets this field in a copy of the YearMonth. * <p> * The YearMonth attached to this property is unchanged by this call. * Instead, a new instance is returned. * * @param value the value to set the field in the copy to * @return a copy of the YearMonth with the field value changed * @throws IllegalArgumentException if the value isn't valid */ public YearMonth setCopy(int value) { int[] newValues = iBase.getValues(); newValues = getField().set(iBase, iFieldIndex, newValues, value); return new YearMonth(iBase, newValues); }
/** * Sets this field in a copy of the YearMonth to a parsed text value. * <p> * The YearMonth attached to this property is unchanged by this call. * Instead, a new instance is returned. * * @param text the text value to set * @param locale optional locale to use for selecting a text symbol * @return a copy of the YearMonth with the field value changed * @throws IllegalArgumentException if the text value isn't valid */ public YearMonth setCopy(String text, Locale locale) { int[] newValues = iBase.getValues(); newValues = getField().set(iBase, iFieldIndex, newValues, text, locale); return new YearMonth(iBase, newValues); }
/** * Sets this field in a copy of the YearMonth to a parsed text value. * <p> * The YearMonth attached to this property is unchanged by this call. * Instead, a new instance is returned. * * @param text the text value to set * @param locale optional locale to use for selecting a text symbol * @return a copy of the YearMonth with the field value changed * @throws IllegalArgumentException if the text value isn't valid */ public YearMonth setCopy(String text, Locale locale) { int[] newValues = iBase.getValues(); newValues = getField().set(iBase, iFieldIndex, newValues, text, locale); return new YearMonth(iBase, newValues); }
/** * Adds to the value of this field in a copy of this YearMonth. * <p> * The value will be added to this field. If the value is too large to be * added solely to this field then it will affect larger fields. * Smaller fields are unaffected. * <p> * If the result would be too large, beyond the maximum year, then an * IllegalArgumentException is thrown. * <p> * The YearMonth attached to this property is unchanged by this call. * Instead, a new instance is returned. * * @param valueToAdd the value to add to the field in the copy * @return a copy of the YearMonth with the field value changed * @throws IllegalArgumentException if the value isn't valid */ public YearMonth addToCopy(int valueToAdd) { int[] newValues = iBase.getValues(); newValues = getField().add(iBase, iFieldIndex, newValues, valueToAdd); return new YearMonth(iBase, newValues); }
/** * Returns a copy of this year-month with the year field updated. * <p> * YearMonth is immutable, so there are no set methods. * Instead, this method returns a new instance with the value of * year changed. * * @param year the year to set * @return a copy of this object with the field set, never null * @throws IllegalArgumentException if the value is invalid */ public YearMonth withYear(int year) { int[] newValues = getValues(); newValues = getChronology().year().set(this, YEAR, newValues, year); return new YearMonth(this, newValues); }
/** * Returns a copy of this year-month with the month of year field updated. * <p> * YearMonth is immutable, so there are no set methods. * Instead, this method returns a new instance with the value of * month of year changed. * * @param monthOfYear the month of year to set * @return a copy of this object with the field set, never null * @throws IllegalArgumentException if the value is invalid */ public YearMonth withMonthOfYear(int monthOfYear) { int[] newValues = getValues(); newValues = getChronology().monthOfYear().set(this, MONTH_OF_YEAR, newValues, monthOfYear); return new YearMonth(this, newValues); }
/** * Returns a copy of this year-month with the year field updated. * <p> * YearMonth is immutable, so there are no set methods. * Instead, this method returns a new instance with the value of * year changed. * * @param year the year to set * @return a copy of this object with the field set, never null * @throws IllegalArgumentException if the value is invalid */ public YearMonth withYear(int year) { int[] newValues = getValues(); newValues = getChronology().year().set(this, YEAR, newValues, year); return new YearMonth(this, newValues); }
/** * Returns a copy of this year-month with the month of year field updated. * <p> * YearMonth is immutable, so there are no set methods. * Instead, this method returns a new instance with the value of * month of year changed. * * @param monthOfYear the month of year to set * @return a copy of this object with the field set, never null * @throws IllegalArgumentException if the value is invalid */ public YearMonth withMonthOfYear(int monthOfYear) { int[] newValues = getValues(); newValues = getChronology().monthOfYear().set(this, MONTH_OF_YEAR, newValues, monthOfYear); return new YearMonth(this, newValues); }
/** * Handle broken serialization from other tools. * @return the resolved object, not null */ private Object readResolve() { if (DateTimeZone.UTC.equals(getChronology().getZone()) == false) { return new YearMonth(this, getChronology().withUTC()); } return this; }
/** * Handle broken serialization from other tools. * @return the resolved object, not null */ private Object readResolve() { if (DateTimeZone.UTC.equals(getChronology().getZone()) == false) { return new YearMonth(this, getChronology().withUTC()); } return this; }