Module  java.base
软件包  java.util

Class Calendar.Builder

  • Enclosing class:
    Calendar


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

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

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

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

    例子

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

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

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

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

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