模块  java.base
软件包  java.util

Class Calendar.Builder

  • Enclosing class:
    Calendar

    public static class Calendar.Builder
    extends Object
    Calendar.Builder用于从各种日期时间参数创建Calendar

    有两种方法可将Calendar设置为日期时间值。 一种是将instant参数设置为距离Epoch的毫秒偏移量。 另一种是将各个字段参数(例如YEAR )设置为其所需的值。 这两种方式不能混为一谈。 尝试设置即时和单个字段将导致IllegalStateException被抛出。 但是,允许覆盖即时或字段参数的先前值。

    如果没有给出足够的字段参数来确定日期和/或时间,则在构建Calendar时将使用日历特定的默认值。 例如,如果没有为公历提供YEAR值,则将使用1970。 如果字段参数之间存在任何冲突,则应用resolution rules 因此,场设置的顺序很重要。

    除了日期时间参数,该localetime zoneweek definitionleniency mode参数进行设置。

    例子

    以下是示例用法。 示例代码假定静态导入Calendar常量。

    以下代码生成Calendar ,日期为2012-12-31(格里高利),因为星期一是ISO 8601 compatible week parameters的一周的第一天。

      Calendar cal = new Calendar.Builder().setCalendarType("iso8601")
                            .setWeekDate(2013, 1, MONDAY).build(); 

    以下代码生成日语Calendar ,日期为1989-01-08(格里高利),假设默认ERA是当天开始的平成

      Calendar cal = new Calendar.Builder().setCalendarType("japanese")
                            .setFields(YEAR, 1, DAY_OF_YEAR, 1).build(); 
    从以下版本开始:
    1.8
    另请参见:
    Calendar.getInstance(TimeZone, Locale)Calendar.fields