public enum Month extends Enum<Month> implements TemporalAccessor, TemporalAdjuster
Month
是代表今年12月,1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月和12月的枚举。
除了文本枚举名称,每个月份的值都有一个int
值。 int
价格遵循正常使用和ISO-8601标准,从1月1日至12日(12月)。 建议应用程序使用枚举而不是int
值来确保代码清晰。
请勿使用ordinal()
获取Month的数字Month
。 改用getValue()
。
该枚举代表了许多日历系统中发现的常见概念。 因此,该枚举可能被任何具有与ISO-8601日历系统完全相同的年度概念的日历系统使用。
Enum Constant and Description |
---|
APRIL
4月份的单身实例,30天。
|
AUGUST
8月份的单身人士31天。
|
DECEMBER
12月份的单身人士31天。
|
FEBRUARY
二月份的单身人士28天,或闰年29人。
|
JANUARY
1月份的单身实例31天。
|
JULY
7月份的单身人士31天。
|
JUNE
6月份的单身人士30天。
|
MARCH
3月份的单身人士31天。
|
MAY
5月份的单身人士31天。
|
NOVEMBER
11月份的单身人士30天。
|
OCTOBER
10月份的单身人士31天。
|
SEPTEMBER
9月份的单身实例,30天。
|
Modifier and Type | Method and Description |
---|---|
Temporal |
adjustInto(Temporal temporal)
将指定的时间对象调整为具有这个月的年份。
|
int |
firstDayOfYear(boolean leapYear)
获得与本月第一天对应的日期。
|
Month |
firstMonthOfQuarter()
获得与本季度第一个月相对应的月份。
|
static Month |
from(TemporalAccessor temporal)
从时间对象获取一个
Month 的实例。
|
int |
get(TemporalField field)
获取指定字段从这个月的年价值为
int 。
|
String |
getDisplayName(TextStyle style, Locale locale)
获取文本表示,如“1月”或“12月”。
|
long |
getLong(TemporalField field)
获取指定字段的自本月同比-值作为
long 。
|
int |
getValue()
获得一年的
int 价值。
|
boolean |
isSupported(TemporalField field)
检查指定的字段是否受支持。
|
int |
length(boolean leapYear)
以天为单位获得本月的长度。
|
int |
maxLength()
以天为单位获得本月的最大长度。
|
int |
minLength()
以天为单位获得本月的最小长度。
|
Month |
minus(long months)
返回指定月份之前的月份。
|
static Month |
of(int month)
从
int 获取
Month 一个实例。
|
Month |
plus(long months)
返回这个月之后指定的季度数。
|
<R> R |
query(TemporalQuery<R> query)
使用指定的查询查询此月份的一年。
|
ValueRange |
range(TemporalField field)
获取指定字段的有效值的范围。
|
static Month |
valueOf(String name)
以指定的名称返回此类型的枚举常量。
|
static Month[] |
values()
按照它们声明的顺序返回一个包含此枚举类型常量的数组。
|
public static final Month JANUARY
1
。
public static final Month FEBRUARY
2
。
public static final Month MARCH
3
。
public static final Month APRIL
4
。
public static final Month MAY
5
。
public static final Month JUNE
6
。
public static final Month JULY
7
。
public static final Month AUGUST
8
。
public static final Month SEPTEMBER
9
。
public static final Month OCTOBER
10
。
public static final Month NOVEMBER
11
。
public static final Month DECEMBER
12
。
public static Month[] values()
for (Month c : Month.values())
System.out.println(c);
public static Month valueOf(String name)
name
- 要返回的枚举常量的名称。
IllegalArgumentException
- 如果此枚举类型没有指定名称的常量
NullPointerException
- 如果参数为空
public static Month of(int month)
int
获取Month
一个实例。
Month
是一年的12个月的枚举。 该工厂允许从int
获得枚举。 int
价格遵循ISO-8601标准,从1月1日至12日(12月)。
month
- 从1月1日至12日(12月)的月份,
DateTimeException
- 如果月份无效
public static Month from(TemporalAccessor temporal)
Month
的实例。
这取决于指定时间的一个月。 A TemporalAccessor
表示日期和时间信息的任意集合,该工厂将其转换为Month
一个实例。
该转换提取了MONTH_OF_YEAR
字段。 只有当时间对象具有ISO年表,或者可以转换为LocalDate时, LocalDate
。
该方法中,功能接口的签名相匹配TemporalQuery
允许它在通过方法参考,查询中使用Month::from
。
temporal
- 要转换的时间对象,不为null
DateTimeException
- 如果无法转换为
Month
public int getValue()
int
价值。
这些值按照ISO-8601标准编号,从1(1月)到12(12月)。
public String getDisplayName(TextStyle style, Locale locale)
style
- 所需文本的长度,不为空
locale
- 要使用的语言环境,不为空
public boolean isSupported(TemporalField field)
这将检查是否可以查询指定字段的年月日。 如果是false,那么调用range
和get
方法会抛出异常。
如果该字段为MONTH_OF_YEAR
,则此方法返回true。 所有其他ChronoField
实例将返回false。
如果该字段是不是一个ChronoField
,则此方法的结果是通过调用获得TemporalField.isSupportedBy(TemporalAccessor)
传递this
作为参数。 字段是否受支持由字段决定。
isSupported
在界面
TemporalAccessor
field
- 要检查的字段,null返回false
public ValueRange range(TemporalField field)
范围对象表示字段的最小和最大有效值。 本月用于提高返回范围的准确性。 如果不可能返回范围,因为该字段不受支持或出于某种其他原因,则抛出异常。
如果该字段是MONTH_OF_YEAR
,则将返回从1到12的月份的范围。 所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。
如果该字段是不是一个ChronoField
,则此方法的结果是通过调用获得TemporalField.rangeRefinedBy(TemporalAccessor)
传递this
作为参数。 是否可以获得范围由字段确定。
range
在接口
TemporalAccessor
field
- 查询范围的字段,不为null
DateTimeException
- 如果无法获取字段的范围
UnsupportedTemporalTypeException
- 如果该字段不被支持
public int get(TemporalField field)
int
。
这个月查询指定字段的值。 返回的值将始终在该字段的值的有效范围内。 如果不可能返回值,因为该字段不受支持或出于某种其他原因,则抛出异常。
如果字段为MONTH_OF_YEAR
,那么将返回从1到12的月份的值。 所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。
如果该字段是不是一个ChronoField
,则此方法的结果是通过调用获得TemporalField.getFrom(TemporalAccessor)
传递this
作为参数。 该值是否可以获得,该值代表什么值由该字段决定。
get
在界面
TemporalAccessor
field
- 要获取的字段,不为null
DateTimeException
- 如果无法获取字段的值,或者该值超出了该字段的有效值的范围
UnsupportedTemporalTypeException
- 如果该字段不被支持或值范围超过
int
ArithmeticException
- 如果发生数字溢出
public long getLong(TemporalField field)
long
。
这个月查询指定字段的值。 如果不可能返回值,因为该字段不受支持或出于某种其他原因,则抛出异常。
如果字段为MONTH_OF_YEAR
,那么将返回从1到12的月份的值。 所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。
如果该字段是不是一个ChronoField
,则此方法的结果是通过调用获得TemporalField.getFrom(TemporalAccessor)
传递this
作为参数。 该值是否可以获得,该值代表什么值由该字段决定。
getLong
在界面
TemporalAccessor
field
- 要获取的字段,不为null
DateTimeException
- 如果无法获取该字段的值
UnsupportedTemporalTypeException
- 如果该字段不被支持
ArithmeticException
- 如果发生数字溢出
public Month plus(long months)
计算从12月到1月左右。 指定期间可能为负。
此实例是不可变的,不受此方法调用的影响。
months
- 增加的月份,正面或负面
public Month minus(long months)
计算从1月到12月的年初。 指定期间可能为负。
此实例是不可变的,不受此方法调用的影响。
months
- 减数,正或负的月数
public int length(boolean leapYear)
这需要一个标志来确定是否返回闰年的长度。
二月份在标准年份有28天,闰年有29天。 4月,6月,9月和11月有30天。 所有其他月份都有31天。
leapYear
- 如果闰年需要长度,则为true
public int minLength()
二月最短28天。 4月,6月,9月和11月有30天。 所有其他月份都有31天。
public int maxLength()
二月最长可达29天。 4月,6月,9月和11月有30天。 所有其他月份都有31天。
public int firstDayOfYear(boolean leapYear)
这将返回本月开始的日期,使用闰年标志来确定2月的长度。
leapYear
- 如果闰年需要长度,则为true
public Month firstMonthOfQuarter()
年份可分为四个季度。 此方法返回基准月份的季度的第一个月。 1月,2月和3月返回1月。 四月,五月和六月返回四月。 七月,八月和九月返回七月。 十月,十一月和十二月返回十月。
public <R> R query(TemporalQuery<R> query)
这使用指定的查询策略对象查询这个月份。 TemporalQuery
对象定义了用于获取结果的逻辑。 阅读查询的文档,以了解该方法的结果。
该方法的结果是通过调用TemporalQuery.queryFrom(TemporalAccessor)
方法获取的指定查询通过this
作为参数。
query
在界面
TemporalAccessor
R
- 结果的类型
query
- 要调用的查询,不为空
DateTimeException
- 如果无法查询(由查询定义)
ArithmeticException
- 如果发生数字溢出(由查询定义)
public Temporal adjustInto(Temporal temporal)
这返回与年月日的输入相同的可观察类型的时间对象与此相同。
调整相当于使用88443774508808通过ChronoField.MONTH_OF_YEAR
作为字段。 如果指定的时间对象不使用ISO日历系统,则抛出DateTimeException
。
在大多数情况下,通过使用Temporal.with(TemporalAdjuster)
来更正呼叫模式:
// these two lines are equivalent, but the second approach is recommended
temporal = thisMonth.adjustInto(temporal);
temporal = temporal.with(thisMonth);
例如,在5月份的日期中,输出以下内容:
dateInMay.with(JANUARY); // four months earlier
dateInMay.with(APRIL); // one months earlier
dateInMay.with(MAY); // same date
dateInMay.with(JUNE); // one month later
dateInMay.with(DECEMBER); // seven months later
此实例是不可变的,不受此方法调用的影响。
adjustInto
在界面
TemporalAdjuster
temporal
- 要调整的目标对象,不为null
DateTimeException
- 如果不能进行调整
ArithmeticException
- 如果发生数字溢出