public static class Calendar.Builder extends Object
Calendar.Builder
用于创建各种时间参数的
Calendar
。
有两种方法来设置一个Calendar
为日期时间值。一是设置即时参数从Epoch偏移一毫秒。另一种是设置个人场参数,如YEAR
,其所需的值。这两种方法不能混合。试图设置的即时和个人领域会造成IllegalStateException
被。然而,它被允许覆盖即时或字段参数的前面的值。
如果没有足够的场参数给出了确定的日期和/或时间,日历的具体使用默认值建立一个Calendar
时。例如,如果YEAR
值不为公历,1970将用于。如果有任何冲突的 resolution rules场参数,应用。因此,字段设置事项的顺序。
除了日期时间参数的locale,time zone,week definition,和leniency mode参数可设定。
实例
以下是示例用法。代码示例假定Calendar
常量是静态的进口。
下面的代码生成一个Calendar
日期2012-12-31(阳历)因为星期一是一周的第一天的 ISO 8601 compatible week parameters。
日历卡=新的日历。builder() setcalendartype(“ISO8601”)。。setweekdate(2013,1,星期一build());
下面的代码生成一个日本Calendar
日期1989-01-08(阳历),假设默认ERA
是平成那天开始。
日历卡=新的日历。builder() setcalendartype(“日本”)。。setfields(年,1,day_of_year,1)。build();
Calendar.getInstance(TimeZone, Locale)
,
Calendar.fields
Constructor and Description |
---|
Builder()
构建了一个
Calendar.Builder 。
|
Modifier and Type | Method and Description |
---|---|
Calendar |
build()
返回一个
Calendar 建的setter方法的参数。
|
Calendar.Builder |
set(int field, int value)
设置为给定的参数
value
field 。
|
Calendar.Builder |
setCalendarType(String type)
设置为给定
type 日历类型参数。
|
Calendar.Builder |
setDate(int year, int month, int dayOfMonth)
设置日期字段参数通过
year ,
month 给定值,并
dayOfMonth 。
|
Calendar.Builder |
setFields(int... fieldValuePairs)
集场参数的值由
fieldValuePairs 是一场对其价值给予。
|
Calendar.Builder |
setInstant(Date instant)
设置的
Date 给予
instant 即时参数值。
|
Calendar.Builder |
setInstant(long instant)
设置为给定
instant 值偏离
the Epoch一毫秒的瞬时参数。
|
Calendar.Builder |
setLenient(boolean lenient)
设置了
lenient 价值从宽模式参数。
|
Calendar.Builder |
setLocale(Locale locale)
设置为给定
locale Locale参数。
|
Calendar.Builder |
setTimeOfDay(int hourOfDay, int minute, int second)
套节现场参数的时间到
hourOfDay ,
minute 给定值,并
second 。
|
Calendar.Builder |
setTimeOfDay(int hourOfDay, int minute, int second, int millis)
套节现场参数的时间到
hourOfDay ,
minute ,
second 给定值,并
millis 。
|
Calendar.Builder |
setTimeZone(TimeZone zone)
设置为给定
zone 时区参数。
|
Calendar.Builder |
setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
设置周基础数据参数的值与给定的日期说明周年,周年和星期。
|
Calendar.Builder |
setWeekDefinition(int firstDayOfWeek, int minimalDaysInFirstWeek)
|
public Calendar.Builder setInstant(long instant)
instant
值偏离
the Epoch一毫秒的瞬时参数。
instant
-从时代的偏移一毫秒
Calendar.Builder
IllegalStateException
-如果任何字段的参数已经设置
Calendar.setTime(Date)
,
Calendar.setTimeInMillis(long)
,
Calendar.time
public Calendar.Builder setInstant(Date instant)
instant
-
Date
代表从时代的偏移一毫秒
Calendar.Builder
null
instant
NullPointerException
IllegalStateException
-如果任何字段的参数已经设置
Calendar.setTime(Date)
,
Calendar.setTimeInMillis(long)
,
Calendar.time
public Calendar.Builder set(int field, int value)
value
的
field
参数。
field
对
Calendar.fields
指标,如
DAY_OF_MONTH
。在该方法中不执行字段值验证。任何超出范围的值是归一化的宽松模式或检测为无效值在非宽松的模式建立一个
Calendar
时。
field
到
Calendar
字段索引
value
-该字段值
Calendar.Builder
IllegalArgumentException
-如果
field
无效
IllegalStateException
如果瞬时值已设置,或者如果字段被设置太多(约
Integer.MAX_VALUE
)倍。
Calendar.set(int, int)
public Calendar.Builder setFields(int... fieldValuePairs)
fieldValuePairs
是一场对其价值给予。例如,
setfeilds(calendar.year,2013,calendar.month,calendar.december,calendar.day_of_month,23);等价于下面的
set
调用序列:
(calendar.year集,2013)。集(calendar.month,日历。十二月)(calendar.day_of_month集,23);
fieldValuePairs
场值对
Calendar.Builder
null
fieldValuePairs
NullPointerException
IllegalArgumentException
-如果任何领域是无效的,或者如果
fieldValuePairs.length
是奇数。
IllegalStateException
如果即时值已设置,或者如果字段被设置太多(约
Integer.MAX_VALUE
)倍。
public Calendar.Builder setDate(int year, int month, int dayOfMonth)
year
,
month
给定值,并
dayOfMonth
。这种方法相当于一个电话:
setfields(calendar.year,年,calendar.month,月,calendar.day_of_month,dayofmonth);
year
-
YEAR
价值
month
-
MONTH
值(月编号为0)。
dayOfMonth
-
DAY_OF_MONTH
价值
Calendar.Builder
public Calendar.Builder setTimeOfDay(int hourOfDay, int minute, int second)
hourOfDay
,
minute
给定值,并
second
。这种方法相当于一个电话:
settimeofday(hourofday,分钟,秒,0);
hourOfDay
-
HOUR_OF_DAY
值(24小时)
minute
-
MINUTE
价值
second
-
SECOND
价值
Calendar.Builder
public Calendar.Builder setTimeOfDay(int hourOfDay, int minute, int second, int millis)
hourOfDay
,
minute
,
second
给定值,并
millis
。这种方法相当于一个电话:
setfields(calendar.hour_of_day,hourofday,calendar.minute,分钟,calendar.second,二,calendar.millisecond,millis);
hourOfDay
-
HOUR_OF_DAY
值(24小时)
minute
-
MINUTE
价值
second
-
SECOND
价值
millis
-
MILLISECOND
价值
Calendar.Builder
public Calendar.Builder setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
如果指定的日历不支持周日期的build
方法将抛出一个IllegalArgumentException
。
weekYear
-周年
weekOfYear
基于
weekYear
周数
dayOfWeek
-星期值日:一为
DAY_OF_WEEK
场常数:
SUNDAY
,…,
SATURDAY
。
Calendar.Builder
Calendar.setWeekDate(int, int, int)
,
Calendar.isWeekDateSupported()
public Calendar.Builder setTimeZone(TimeZone zone)
zone
-
TimeZone
Calendar.Builder
null
zone
NullPointerException
Calendar.setTimeZone(TimeZone)
public Calendar.Builder setLenient(boolean lenient)
lenient
-宽容的方式
true
;非宽松的模式
false
Calendar.Builder
Calendar.setLenient(boolean)
public Calendar.Builder setCalendarType(String type)
type
日历类型参数。日历式的方法对任何显性或隐性的日历类型的
locale优先。
除了现有的日历类型的Calendar.getAvailableCalendarTypes
方法返回,"gregorian"
和"iso8601"
作为"gregory"
别名可以用这种方法。
type
-日历类型
Calendar.Builder
null
type
NullPointerException
IllegalArgumentException
-如果
type
是未知的
IllegalStateException
如果另一个日历类型已经确定
Calendar.getCalendarType()
,
Calendar.getAvailableCalendarTypes()
public Calendar.Builder setLocale(Locale locale)
locale
Locale参数。如果没有现场了
Calendar.Builder
,为
Locale.Category.FORMAT
的
default Locale
将使用。
如果没有日历类型是明确被调用的方法的setCalendarType
,Locale
值用于确定要建什么类型的Calendar
。
如果没有周定义参数明确的呼吁setWeekDefinition
方法,采用Locale
的默认值。
locale
-
Locale
Calendar.Builder
null
locale
NullPointerException
Calendar.getInstance(Locale)
public Calendar.Builder setWeekDefinition(int firstDayOfWeek, int minimalDaysInFirstWeek)
firstDayOfWeek
-一个星期的第一天;到
Calendar.SATURDAY
的
Calendar.SUNDAY
一
minimalDaysInFirstWeek
-在第一周的天数最少(1。7)
Calendar.Builder
IllegalArgumentException
-如果
firstDayOfWeek
或
minimalDaysInFirstWeek
无效
Calendar.getFirstDayOfWeek()
,
Calendar.getMinimalDaysInFirstWeek()
public Calendar build()
Calendar
建的setter方法的参数。由
setCalendarType
法或
locale给定日历类型用于确定什么
Calendar
被创建。如果没有给出明确的日历类型,则创建区域设置的默认日历。
如果日历类型"iso8601"
,一GregorianCalendar
的Gregorian change date设置Date(Long.MIN_VALUE)
是proleptic公历。其周定义参数也将compatible with the ISO 8601 standard。注意,一个GregorianCalendar
与"iso8601"
返回"gregory"
创造getCalendarType
方法。
如果这些参数没有显式给出,则用于设置区域和时区的默认值。
任何超出范围的字段值都可以在宽松模式中进行规范化,或在非仁慈模式下检测到无效值。
Calendar
与本
Calendar.Builder
参数建立
IllegalArgumentException
-如果日历类型未知,或如果任何无效的字段值在非宽松的模式,或者一个星期的日期给予不支持周日期的日历类型。
Calendar.getInstance(TimeZone, Locale)
,
Locale.getDefault(Locale.Category)
,
TimeZone.getDefault()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.