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.