LocalDate 是一个不可变的日期-时间对象,表示一个日期,通常被视为年-月-日。还可以访问其他日期字段,例如一年中的某一天、星期几和一年中的一周。例如,值“2024 年 04 月 2 日”可以存储在 LocalDate.
此类不存储或表示时间或时区。相反,它是对日期的描述,用于生日。如果没有其他信息(如偏移量或时区),它就无法表示时间轴上的瞬间。
此类是不可变的,并且是线程安全的
public static LocalDate now() {
return now(Clock.systemDefaultZone());
}
public static LocalDate now(ZoneId zone) {
return now(Clock.system(zone));
}
public static LocalDate now(Clock clock) {
Objects.requireNonNull(clock, "clock");
// inline to avoid creating object and Instant checks
final Instant now = clock.instant(); // called once
ZoneOffset offset = clock.getZone().getRules().getOffset(now);
long epochSec = now.getEpochSecond() + offset.getTotalSeconds(); // overflow caught later
long epochDay = Math.floorDiv(epochSec, SECONDS_PER_DAY);
return LocalDate.ofEpochDay(epochDay);
}
public static LocalDate of(int year, Month month, int dayOfMonth) {
YEAR.checkValidValue(year);
Objects.requireNonNull(month, "month");
DAY_OF_MONTH.checkValidValue(dayOfMonth);
return create(year, month.getValue(), dayOfMonth);
}
从年、月和日获取实例 LocalDate 。这将返回具有指定年份、月份和月份中的日期的 a LocalDate 。该日期必须对年份和月份有效,否则将引发异常。
year – 代表的年份,从 MIN_YEAR 年到 MAX_YEAR
month – 要表示的年份月份,而不是 null
dayOfMonth – 要表示的月份中的日期,从 1 到 31
public static LocalDate ofYearDay(int year, int dayOfYear) {
YEAR.checkValidValue(year);
DAY_OF_YEAR.checkValidValue(dayOfYear);
boolean leap = IsoChronology.INSTANCE.isLeapYear(year);
if (dayOfYear == 366 && leap == false) {
throw new DateTimeException("Invalid date 'DayOfYear 366' as '" + year + "' is not a leap year");
}
Month moy = Month.of((dayOfYear - 1) / 31 + 1);
int monthEnd = moy.firstDayOfYear(leap) + moy.length(leap) - 1;
if (dayOfYear > monthEnd) {
moy = moy.plus(1);
}
int dom = dayOfYear - moy.firstDayOfYear(leap) + 1;
return new LocalDate(year, moy.getValue(), dom);
}
参数:
year – 代表的年份,从 MIN_YEAR 年到 MAX_YEAR
dayOfYear – 要表示的年份,从 1 到 366
public static LocalDate parse(CharSequence text) {
return parse(text, DateTimeFormatter.ISO_LOCAL_DATE);
}
@Override
public String format(DateTimeFormatter formatter) {
Objects.requireNonNull(formatter, "formatter");
return formatter.format(this);
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。