org.threeten.bp.Year类的使用及代码示例

x33g5p2x  于2022-02-05 转载在 其他  
字(10.8k)|赞(0)|评价(0)|浏览(107)

本文整理了Java中org.threeten.bp.Year类的一些代码示例,展示了Year类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Year类的具体详情如下:
包路径:org.threeten.bp.Year
类名称:Year

Year介绍

[英]A year in the ISO-8601 calendar system, such as 2007.

Year is an immutable date-time object that represents a year. Any field that can be derived from a year can be obtained.

Note that years in the ISO chronology only align with years in the Gregorian-Julian system for modern years. Parts of Russia did not switch to the modern Gregorian/ISO rules until 1920. As such, historical years must be treated with caution.

This class does not store or represent a month, day, time or time-zone. For example, the value "2007" can be stored in a Year.

Years represented by this class follow the ISO-8601 standard and use the proleptic numbering system. Year 1 is preceded by year 0, then by year -1.

The ISO-8601 calendar system is the modern civil calendar system used today in most of the world. It is equivalent to the proleptic Gregorian calendar system, in which today's rules for leap years are applied for all time. For most applications written today, the ISO-8601 rules are entirely suitable. However, any application that makes use of historical dates, and requires them to be accurate will find the ISO-8601 approach unsuitable.

Specification for implementors

This class is immutable and thread-safe.
[中]ISO-8601日历系统中的一年,如2007年。
Year是表示年份的不可变日期时间对象。可以从一年中得到任何字段。
请注意,ISO年表中的年份仅与现代格里高利-朱利安体系中的年份一致。直到1920年,俄罗斯部分地区才改用现代的格里高利/ISO规则。因此,必须谨慎对待历史年份。
此类不存储或表示月、日、时间或时区。例如,值“2007”可以存储在一年内。
该类别所代表的年份遵循ISO-8601标准,并使用proleptic编号系统。第一年之前是第0年,然后是第1年。
ISO-8601日历系统是当今世界大部分地区使用的现代民用日历系统。它相当于公历的前身,即今天的闰年规则一直适用。对于今天编写的大多数应用程序,ISO-8601规则完全适用。然而,任何使用历史日期并要求其准确的应用程序都会发现ISO-8601方法不合适。
####实施者规范
这个类是不可变的,是线程安全的。

代码示例

代码示例来源:origin: com.github.joschi.jackson/jackson-datatype-threetenbp

@Override
public void serialize(Year year, JsonGenerator generator, SerializerProvider provider) throws IOException
{
  if (useTimestamp(provider)) {
    generator.writeNumber(year.getValue());
  } else {
    String str = (_formatter == null) ? year.toString() : year.format(_formatter);
    generator.writeString(str);
  }
}

代码示例来源:origin: ThreeTen/threetenbp

static Year readExternal(DataInput in) throws IOException {
  return Year.of(in.readInt());
}

代码示例来源:origin: ThreeTen/threetenbp

/**
 * Obtains an instance of {@code Year} from a text string such as {@code 2007}.
 * <p>
 * The string must represent a valid year.
 * Years outside the range 0000 to 9999 must be prefixed by the plus or minus symbol.
 *
 * @param text  the text to parse such as "2007", not null
 * @return the parsed year, not null
 * @throws DateTimeParseException if the text cannot be parsed
 */
public static Year parse(CharSequence text) {
  return parse(text, PARSER);
}

代码示例来源:origin: stackoverflow.com

Year thisYear = Year.from( today );
Year nextYear = thisYear.plusYears( 1 );
Year lastYear = thisYear.minusYears( 1 );

代码示例来源:origin: org.threeten/threetenbp

/**
 * Gets the value of the specified field from this year as an {@code int}.
 * <p>
 * This queries this year for the value for the specified field.
 * The returned value will always be within the valid range of values for the field.
 * If it is not possible to return the value, because the field is not supported
 * or for some other reason, an exception is thrown.
 * <p>
 * If the field is a {@link ChronoField} then the query is implemented here.
 * The {@link #isSupported(TemporalField) supported fields} will return valid
 * values based on this year.
 * All other {@code ChronoField} instances will throw a {@code DateTimeException}.
 * <p>
 * If the field is not a {@code ChronoField}, then the result of this method
 * is obtained by invoking {@code TemporalField.getFrom(TemporalAccessor)}
 * passing {@code this} as the argument. Whether the value can be obtained,
 * and what the value represents, is determined by the field.
 *
 * @param field  the field to get, not null
 * @return the value for the field
 * @throws DateTimeException if a value for the field cannot be obtained
 * @throws ArithmeticException if numeric overflow occurs
 */
@Override  // override for Javadoc
public int get(TemporalField field) {
  return range(field).checkValidIntValue(getLong(field), field);
}

代码示例来源:origin: ThreeTen/threetenbp

/**
 * {@inheritDoc}
 * @throws DateTimeException {@inheritDoc}
 * @throws ArithmeticException {@inheritDoc}
 */
@Override
public Year plus(long amountToAdd, TemporalUnit unit) {
  if (unit instanceof ChronoUnit) {
    switch ((ChronoUnit) unit) {
      case YEARS: return plusYears(amountToAdd);
      case DECADES: return plusYears(Jdk8Methods.safeMultiply(amountToAdd, 10));
      case CENTURIES: return plusYears(Jdk8Methods.safeMultiply(amountToAdd, 100));
      case MILLENNIA: return plusYears(Jdk8Methods.safeMultiply(amountToAdd, 1000));
      case ERAS: return with(ERA, Jdk8Methods.safeAdd(getLong(ERA), amountToAdd));
    }
    throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
  }
  return unit.addTo(this, amountToAdd);
}

代码示例来源:origin: com.github.joschi.jackson/jackson-datatype-threetenbp

@Override
  public Year deserialize(JsonParser parser, DeserializationContext context) throws IOException
  {
    JsonToken t = parser.getCurrentToken();
    if (t == JsonToken.VALUE_STRING) {
      String string = parser.getValueAsString().trim();
      try {
        if (_formatter == null) {
          return Year.parse(string);
        }
        return Year.parse(string, _formatter);
      } catch (DateTimeException e) {
        _rethrowDateTimeException(parser, context, e, string);
      }
    }
    if (t == JsonToken.VALUE_NUMBER_INT) {
      return Year.of(parser.getIntValue());
    }
    if (t == JsonToken.VALUE_EMBEDDED_OBJECT) {
      return (Year) parser.getEmbeddedObject();
    }
    throw context.mappingException("Unexpected token (%s), expected VALUE_STRING or VALUE_NUMBER_INT",
        parser.getCurrentToken());
  }
}

代码示例来源:origin: ThreeTen/threetenbp

f.checkValidValue(newValue);
switch (f) {
  case YEAR_OF_ERA: return Year.of((int) (year < 1 ? 1 - newValue : newValue));
  case YEAR: return Year.of((int) newValue);
  case ERA: return (getLong(ERA) == newValue ? this : Year.of(1 - year));

代码示例来源:origin: ThreeTen/threetenbp

/**
 * Gets the length of this year in days.
 *
 * @return the length of this year in days, 365 or 366
 */
public int length() {
  return isLeap() ? 366 : 365;
}

代码示例来源:origin: ThreeTen/threetenbp

/**
 * Returns a copy of this year with the specified number of years subtracted.
 * <p>
 * This instance is immutable and unaffected by this method call.
 *
 * @param yearsToSubtract  the years to subtract, may be negative
 * @return a {@code Year} based on this year with the period subtracted, not null
 * @throws DateTimeException if the result exceeds the supported year range
 */
public Year minusYears(long yearsToSubtract) {
  return (yearsToSubtract == Long.MIN_VALUE ? plusYears(Long.MAX_VALUE).plusYears(1) : plusYears(-yearsToSubtract));
}

代码示例来源:origin: ThreeTen/threetenbp

ZoneRulesBuilder addToBuilder(ZoneRulesBuilder bld, Map<String, List<TZDBRule>> rules) {
  if (year != null) {
    bld.addWindow(standardOffset, toDateTime(year.getValue()), timeDefinition);
  } else {
    bld.addWindowForever(standardOffset);
  }
  if (fixedSavingsSecs != null) {
    bld.setFixedSavingsToWindow(fixedSavingsSecs);
  } else {
    List<TZDBRule> tzdbRules = rules.get(savingsRule);
    if (tzdbRules == null) {
      throw new IllegalArgumentException("Rule not found: " + savingsRule);
    }
    for (TZDBRule tzdbRule : tzdbRules) {
      tzdbRule.addToBuilder(bld);
    }
  }
  return bld;
}

代码示例来源:origin: ThreeTen/threetenbp

Year end = Year.from(endExclusive);
if (unit instanceof ChronoUnit) {
  long yearsUntil = ((long) end.year) - year;  // no overflow
    case CENTURIES: return yearsUntil / 100;
    case MILLENNIA: return yearsUntil / 1000;
    case ERAS: return end.getLong(ERA) - getLong(ERA);

代码示例来源:origin: ThreeTen/threetenbp

@Override
  public Year queryFrom(TemporalAccessor temporal) {
    return Year.from(temporal);
  }
};

代码示例来源:origin: ThreeTen/threetenbp

/**
 * Obtains an instance of {@code Year}.
 * <p>
 * This method accepts a year value from the proleptic ISO calendar system.
 * <p>
 * The year 2AD/CE is represented by 2.<br>
 * The year 1AD/CE is represented by 1.<br>
 * The year 1BC/BCE is represented by 0.<br>
 * The year 2BC/BCE is represented by -1.<br>
 *
 * @param isoYear  the ISO proleptic year to represent, from {@code MIN_VALUE} to {@code MAX_VALUE}
 * @return the year, not null
 * @throws DateTimeException if the field is invalid
 */
public static Year of(int isoYear) {
  YEAR.checkValidValue(isoYear);
  return new Year(isoYear);
}

代码示例来源:origin: org.threeten/threetenbp

/**
 * {@inheritDoc}
 * @throws DateTimeException {@inheritDoc}
 * @throws ArithmeticException {@inheritDoc}
 */
@Override
public Year plus(long amountToAdd, TemporalUnit unit) {
  if (unit instanceof ChronoUnit) {
    switch ((ChronoUnit) unit) {
      case YEARS: return plusYears(amountToAdd);
      case DECADES: return plusYears(Jdk8Methods.safeMultiply(amountToAdd, 10));
      case CENTURIES: return plusYears(Jdk8Methods.safeMultiply(amountToAdd, 100));
      case MILLENNIA: return plusYears(Jdk8Methods.safeMultiply(amountToAdd, 1000));
      case ERAS: return with(ERA, Jdk8Methods.safeAdd(getLong(ERA), amountToAdd));
    }
    throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
  }
  return unit.addTo(this, amountToAdd);
}

代码示例来源:origin: org.threeten/threetenbp

f.checkValidValue(newValue);
switch (f) {
  case YEAR_OF_ERA: return Year.of((int) (year < 1 ? 1 - newValue : newValue));
  case YEAR: return Year.of((int) newValue);
  case ERA: return (getLong(ERA) == newValue ? this : Year.of(1 - year));

代码示例来源:origin: org.threeten/threetenbp

/**
 * Gets the length of this year in days.
 *
 * @return the length of this year in days, 365 or 366
 */
public int length() {
  return isLeap() ? 366 : 365;
}

代码示例来源:origin: org.threeten/threetenbp

/**
 * Returns a copy of this year with the specified number of years subtracted.
 * <p>
 * This instance is immutable and unaffected by this method call.
 *
 * @param yearsToSubtract  the years to subtract, may be negative
 * @return a {@code Year} based on this year with the period subtracted, not null
 * @throws DateTimeException if the result exceeds the supported year range
 */
public Year minusYears(long yearsToSubtract) {
  return (yearsToSubtract == Long.MIN_VALUE ? plusYears(Long.MAX_VALUE).plusYears(1) : plusYears(-yearsToSubtract));
}

代码示例来源:origin: org.threeten/threetenbp

ZoneRulesBuilder addToBuilder(ZoneRulesBuilder bld, Map<String, List<TZDBRule>> rules) {
  if (year != null) {
    bld.addWindow(standardOffset, toDateTime(year.getValue()), timeDefinition);
  } else {
    bld.addWindowForever(standardOffset);
  }
  if (fixedSavingsSecs != null) {
    bld.setFixedSavingsToWindow(fixedSavingsSecs);
  } else {
    List<TZDBRule> tzdbRules = rules.get(savingsRule);
    if (tzdbRules == null) {
      throw new IllegalArgumentException("Rule not found: " + savingsRule);
    }
    for (TZDBRule tzdbRule : tzdbRules) {
      tzdbRule.addToBuilder(bld);
    }
  }
  return bld;
}

代码示例来源:origin: ThreeTen/threetenbp

/**
 * Gets the value of the specified field from this year as an {@code int}.
 * <p>
 * This queries this year for the value for the specified field.
 * The returned value will always be within the valid range of values for the field.
 * If it is not possible to return the value, because the field is not supported
 * or for some other reason, an exception is thrown.
 * <p>
 * If the field is a {@link ChronoField} then the query is implemented here.
 * The {@link #isSupported(TemporalField) supported fields} will return valid
 * values based on this year.
 * All other {@code ChronoField} instances will throw a {@code DateTimeException}.
 * <p>
 * If the field is not a {@code ChronoField}, then the result of this method
 * is obtained by invoking {@code TemporalField.getFrom(TemporalAccessor)}
 * passing {@code this} as the argument. Whether the value can be obtained,
 * and what the value represents, is determined by the field.
 *
 * @param field  the field to get, not null
 * @return the value for the field
 * @throws DateTimeException if a value for the field cannot be obtained
 * @throws ArithmeticException if numeric overflow occurs
 */
@Override  // override for Javadoc
public int get(TemporalField field) {
  return range(field).checkValidIntValue(getLong(field), field);
}

相关文章

微信公众号

最新文章

更多