Java教程-Java MonthDay类

Java MonthDay类
Java MonthDay类是一个不可变的日期时间对象,表示月份和月份中的某一天的组合。它继承自Object类并实现了Comparable接口。
Java MonthDay类声明
让我们来看一下java.time.MonthDay类的声明。
public final class MonthDay extends Object
implements TemporalAccessor, TemporalAdjuster, Comparable<MonthDay>, Serializable
Java MonthDay类的方法
Method | Description |
---|---|
LocalDate atYear(int year) | 它用于将月-日与年结合起来创建 LocalDate。 |
String format(DateTimeFormatter formatter) | 它用于使用指定的格式化程序来格式化这个月日。 |
int get(TemporalField field) | 它用于从这个月-日获取指定字段的值作为一个 int。 |
boolean isValidYear(int year) | 它用于检查年份是否对该月-日有效。 |
static MonthDay now() | 它用于从默认时区的系统时钟获取当前月日。 |
static MonthDay of(int month, int dayOfMonth) | 它用于获取 MonthDay 的实例。 |
ValueRange range(TemporalField field) | 它用于获取指定字段的有效值范围。 |
int getDayOfMonth() | 它获取日期字段。 |
Month getMonth() | 它使用 Month 枚举获取年月字段。 |
int getMonthValue() | 它获取从 1 到 12 的月份字段。 |
int hashCode() | 它返回这个月-日的哈希码。 |
boolean isAfter(MonthDay other) | 它检查这个月日是否在指定的月日之后。 |
static MonthDay now() | 它从默认时区的系统时钟获取当前月日。 |
static MonthDay now(Clock clock) | 它从指定的时钟获取当前月日。 |
static MonthDay of(int month, int dayOfMonth) | 它获取 MonthDay 的实例。 |
R query(TemporalQuery query) | 它使用指定的查询来查询这个月-日。 |
ValueRange range(TemporalField field) | 它获取指定字段的有效值范围。 |
String toString() | 它将这个月-日输出为字符串,例如 -12-03。 |
MonthDay with(Month month) | 它返回此 MonthDay 的副本,其中月份已更改。 |
MonthDay withDayOfMonth(int dayOfMonth) | 它返回此 MonthDay 的副本,其中日期已更改。 |
MonthDay withMonth(int month) | 它返回此 MonthDay 的副本,其中月份已更改。 |
Java MonthDay类示例
MonthDayExample1.java
import java.time.*;
public class MonthDayExample1 {
public static void main(String[] args) {
MonthDay month = MonthDay.now();
LocalDate date = month.atYear(1994);
System.out.println(date);
}
}
输出:
1994-01-17
Java MonthDay类示例:isValidYear()
MonthDayExample2.java
import java.time.*;
public class MonthDayExample2 {
public static void main(String[] args) {
MonthDay month = MonthDay.now();
boolean b = month.isValidYear(2012);
System.out.println(b);
}
}
输出:
true
Java MonthDay类示例:get()
MonthDayExample3.java
import java.time.*;
import java.time.temporal.*;
public class MonthDayExample3{
public static void main(String[] args) {
MonthDay month = MonthDay.now();
long n = month.get(ChronoField.MONTH_OF_YEAR);
System.out.println(n);
}
}
输出:
1
Java MonthDay类示例:range()
MonthDayExample4.java
import java.time.*;
import java.time.temporal.*;
public class MonthDayExample4 {
public static void main(String[] args) {
MonthDay month = MonthDay.now();
ValueRange r1 = month.range(ChronoField.MONTH_OF_YEAR);
System.out.println(r1);
ValueRange r2 = month.range(ChronoField.DAY_OF_MONTH);
System.out.println(r2);
}
}
输出:
1 - 12
1 - 31