前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >LocalDate类常用解读【java】

LocalDate类常用解读【java】

原创
作者头像
一个风轻云淡
发布于 2024-05-02 16:25:11
发布于 2024-05-02 16:25:11
1.1K0
举报
文章被收录于专栏:java学习javajava学习java

基本介绍

LocalDate 是一个不可变的日期-时间对象,表示一个日期,通常被视为年-月-日。还可以访问其他日期字段,例如一年中的某一天、星期几和一年中的一周。例如,值“2024 年 04 月 2 日”可以存储在 LocalDate.

此类不存储或表示时间或时区。相反,它是对日期的描述,用于生日。如果没有其他信息(如偏移量或时区),它就无法表示时间轴上的瞬间。

此类是不可变的,并且是线程安全的

常见方法

代码语言:java
AI代码解释
复制
public static LocalDate now() {
    return now(Clock.systemDefaultZone());
}
  • 从默认时区的系统时钟获取当前日期。
  • 返回:使用系统时钟和默认时区的当前日期,而不是 null
代码语言:java
AI代码解释
复制
public static LocalDate now(ZoneId zone) {
    return now(Clock.system(zone));
}
  • 从指定时区的系统时钟中获取当前日期。
  • 参数:zone – 要使用的区域 ID,而不是 null
  • 返回:使用系统时钟的当前日期,而不是 null
代码语言:java
AI代码解释
复制
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);
}
  • 从指定的时钟获取当前日期。
  • 参数:clock – 要使用的时钟,而不是空时钟
  • 返回:当前日期,非 null
代码语言:java
AI代码解释
复制
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

  • 返回:本地日期,非 null
  • 抛出:DateTimeException – 如果任何字段的值超出范围,或者月份中的某一天对于月份年份无效
代码语言:java
AI代码解释
复制
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);
}
  • 从一年和一年中的某一天获取实例 LocalDate 。

参数:

year – 代表的年份,从 MIN_YEAR 年到 MAX_YEAR

dayOfYear – 要表示的年份,从 1 到 366

  • 返回:本地日期,非 null
  • 抛出:DateTimeException – 如果任何字段的值超出范围,或者一年中的某一天对年份无效

代码语言:java
AI代码解释
复制
public static LocalDate parse(CharSequence text) {
    return parse(text, DateTimeFormatter.ISO_LOCAL_DATE);
}
  • 从文本字符串(如 2024-12-03)中获取 的LocalDate实例。
  • 参数:text – 要解析的文本,例如“2007-12-03”,而不是 null
  • 返回:解析的本地日期,而不是 null
  • 抛出:DateTimeParseException – 如果无法解析文本
代码语言:java
AI代码解释
复制
@Override 
public String format(DateTimeFormatter formatter) {
    Objects.requireNonNull(formatter, "formatter");
    return formatter.format(this);
}
  • 使用指定的格式化程序设置此日期的格式。此日期将传递给格式化程序以生成字符串。
  • 参数:格式化程序 – 要使用的格式化程序,而不是 null
  • 返回:格式化的日期字符串,而不是 null
  • 抛出:DateTimeException – 如果打印过程中发生错误

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
16.Swift学习之结构体
结构体的介绍 概念介绍 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合 结构体(struct)指的是一种数据结构 结构体是值类型 结构体既可以定义属性又可以定义方法 定义语法 struct 结构体名称 { // 属性和方法 } 举例 struct Resolution { var width = 0 var height = 0 } 解读 定义了一个名叫 Resolution的新结构体,用来描述一个基于像素的显示器分辨率 这个结构体拥有两
YungFan
2018/11/07
3270
swift 类和结构体
值类型被赋予给一个变量、常量或被传递给一个函数的时,其值会被拷贝(在 Swift 中,所有的基本类型:整数、浮点数、布尔值、字符串、数组和字典,都是值类型)
xy_ss
2023/11/22
1930
Swift学习笔记(初始化过程)
MelonTeam
2018/01/04
1.3K0
Swift学习笔记(初始化过程)
Swift系列六 - 结构体与类的本质区别
常见的Bool、Int、Double、String、Array、Dictionary等常见类型都是结构体。
呆呆
2021/05/27
5830
Swift讲解专题十——类与结构体 原
        Swift中的类与结构体十分相似,和Objective-C不同的是,Swift中的结构体不仅可以定义属性,也可以像类一样为其定义方法。
珲少
2018/08/15
3930
Swift基础 结构和类
翻译自:https://docs.swift.org/swift-book/LanguageGuide/ClassesAndStructures.html
郭顺发
2023/07/17
1080
C#中的结构体与类的区别
经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点.
vv彭
2020/10/27
1.5K0
C#中的结构体与类的区别
苹果新的编程语言 Swift 语言进阶(七)--枚举、结构、类
Swift语言中,具有类特征的类型包含三种,即枚举类型、结构类型(包含基本类型,基本类型实际都是结构类型的特例)、类。当中枚举类型、结构类型是属于值类型,类属于引用类型。三种类型都可以加入�属性、方法、下标方法,可以使用扩展进行功能扩展,使用协议等。
全栈程序员站长
2022/07/09
1.1K0
17.Swift学习之类
类的介绍和定义 Swift虽然推荐面向协议编程,但其也是一门面向对象开发的语言 面向对象的基础是类,类产生了对象 在Swift中如何定义类呢? Swift中用class关键字定义类 定义语法 cla
YungFan
2018/11/07
6160
Swift性能优化分析
自从2014年Apple发布Swift语言以来,历时六年多,Swift已经发布到5.3版本,在5.0版本已经ABI stability,5.2版本也已经module stability,不管是语言还是基础库都日趋稳定,目前国内外大厂也都积极拥抱Swift阵营。
编程怪才-凌雨画
2020/12/08
1.4K0
Swift性能优化分析
Swift教程(九)--类和结构体
类和结构体是一种多功能且灵活的构造体。通过使用与现存常量、变量、函数完全相同的语法来在类和结构体当中定义属性和方法以添加功能。
roc
2019/07/31
1.2K0
swift 构造器
使用构造器来实现构造过程,构造器可以看做是用来创建新实例的特殊方法,与OC的构造器不同,之前是先调用父类的init再写自己的, 但是到了Swift里面, 我们却先初始化自己, 再初始化父类, 是相反的,swift中构造器无需返回值,主要任务是保证新实例在第一次使用前完成正确的初始化
xy_ss
2023/11/22
1950
swift  构造器
Swift 结构体构造器
在Swift中,定义为结构体的类型会自动获得由编译器生成的默认初始化程序——所谓的“成员构造器”,因为编译器将根据给定结构体的成员(即其存储的属性)生成该初始化程序。
韦弦zhy
2021/04/09
7210
Swift的属性,方法,下标脚本以及继承
从这篇章节起,Swift编程语言指南大部分的重要内容在于概念,代码并非太多。理解Swift的面向对象理念,语法以及类结构,构造析构过程对于非常好的应用Swift语言将会有比較大的帮助。
全栈程序员站长
2022/07/14
8900
Swift的属性,方法,下标脚本以及继承
Swift学习:构造器(上)
Swift赋予自定义类型更加丰富的功能,一个显著地方就是构造过程。Swift可以为自定义类型设置构造器来初始化一个实例。有关Swift构造器的使用特点可以总结如下: 构造器适用于类、结构体、枚举。是新的实例可用之前必须执行的一个过程 构造器具体的操作包括:必须保证所有存储型属性有合适初始值,执行其他必须的设置 构造器无需返回值,区别于OC 类的实例可以定义析构器,在实例释放之前执行特定的清除工作 存储型属性设置默认值和构造器中为其设置初始值,这种不会触发任何属性观察器 一、默认构造器 - 最简单的构造器
梧雨北辰
2018/04/24
8970
Swift基础语法简化版(续)
闭包能够捕获和存储定义在其上下文中的任何常量和变量,即闭合并包裹那些常量和变量,因此被称为“闭包”。
拉维
2020/06/23
1.6K0
19.Swift学习之构造函数与析构函数
重要说明 本文中提到的构造函数,在很多书中有其他的说法,如构造器,构造方法,初始化,初始函数等 本文中提到的析构函数,在很多书中有其他的说法,如反构造器,析构方法,反初始化,反初始函数等 构造函数的介绍 构造函数用于初始化一个类的实例(创建对象) 默认情况下载创建一个类时,必然会调用一个构造函数 即便是没有编写任何构造函数,编译器也会提供一个默认的构造函数 如果是继承自NSObject,可以对父类的构造函数进行重写 默认构造函数 在创建类和结构体的实例时必须为所有的存储属性设置一个合适的初始值,如果不是在定
YungFan
2018/11/08
1K0
Swift学习总结
5、switch语法与objc差别很大,执行一个分支马上停止,不需要break语句跳出,反而想要穿透到下面分支还要用fallthrough语句。
SheltonWan
2019/06/06
3.1K0
Swift学习总结
万字长文|Swift语法全面解析|附示例
Swift 是一门开发 iOS, macOS, watchOS 和 tvOS 应用的新语言。 swift 是一种安全,快速和互动的编程语言。 swift 支持代码预览(playgrounds),这个特性可以允许程序员在不编译和运行应用程序的前提下运行 Swift 代码并实时查看结果。
悟空聊架构
2020/07/30
3.8K0
Swift学习:属性
本篇将详细总结介绍Swift属性的用法; 属性是与特定的Swift类、结构体、枚举相关联的值;与其他语言相比,属性不再是被类所特有。
梧雨北辰
2018/08/09
6390
相关推荐
16.Swift学习之结构体
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档