背景

java的日期和时间API设计不理想,java8引入新的时间和日期API就是为了解决这个问题。

老的日期API的核心类 缺点 Date 月从0开始,年最小从1900年开始,没有时区的概念 Calendar 月从0开始 DateFormat 线程不安全 其它 同时存在Date和Calendar难以选择; Date和Calendar类都是可变的,维护噩梦 java8引入了类似joda-time的新特性。核心类如下:

LocalDate

标识日期。下面是javadoc的翻译:

日期没有时区,处在ISO-8601日历系统下。例如:2007-12-03

是一个不可变日期对象常见表示是年月日,其它的日期字段比如dayOfYear,dayOfWeek,weekOfYear也是可以访问的。

LocalDate.now().get(ChronoField.ALIGNED_WEEK_OF_YEAR);

举个例子, 2007年10月2日可以存放在LocalDate里。

这个类没有存储或者代表时间或者时区。

相反,它描叙了日期,比如可以用来表示生日,他不能代表一个时间线上的没有附加信息的瞬间,比如一个偏移量后者时区。

这是一个基于值的类,使用标识敏感的操作,比如 == , hashCode(), 或者LocalDate对象的同步操作可能会有无法预测的结果,并且应该避免。equals方法应该被用来比较。

这个类是不可变并且线程安全的。

下面是javadoc原文,不重要的内容我删掉了。

/**

* A date without a time-zone in the ISO-8601 calendar system,

* such as {@code 2007-12-03}.

*

* {@code LocalDate} is an immutable date-time object that represents a date,

* often viewed as year-month-day. Other date fields, such as day-of-year,

* day-of-week and week-of-year, can also be accessed.

* For example, the value "2nd October 2007" can be stored in a {@code LocalDate}.

*

* This class does not store or represent a time or time-zone.

* Instead, it is a description of the date, as used for birthdays.

* It cannot represent an instant on the time-line without additional information

* such as an offset or time-zone.

*

* This is a value-based

* class; use of identity-sensitive operations (including reference equality

* ({@code ==}), identity hash code, or synchronization) on instances of

* {@code LocalDate} may have unpredictable results and should be avoided.

* The {@code equals} method should be used for comparisons.

* This class is immutable and thread-safe.

public final class LocalDate

implements Temporal, TemporalAdjuster, ChronoLocalDate, Serializable

主要有4种构造方法:

构造方法种类 说明 of类 有4个, of(int year,int month, int day) , of(int year, Month month, int day) , ofYearDay(int year, int dayofYear), ofEpochday(long epochDay) 1970年1月1日为机器元年 now类3个 实际上重载了now(Clock clock), 其它两个 now(), now(ZoneId zoneId) 取得是机器在某个时区的始终,取的日期,然后调用ofEpochday(long epochDay)来初始化日期 from类1个 from(TemporalAccessor temporal) 通过一个Temporal对象来初始化日期,具体用法见例子 parse类2个 pase(string date),parse(String date , DateTimeFormatter formater)以字符串的方式初始化日期 获取类方法:

获取类方法 说明 getYear() 获取年 getMonthValue() 获取月份数值 getMonth() 得到月份对象 getDayOfMonth 得到月份的天数值 getDayOfWeek 得到一周的星期数 package com.test.time;

import java.time.LocalDate;

import java.time.chrono.ChronoLocalDate;

import java.time.format.DateTimeFormatter;

import java.time.temporal.TemporalAccessor;

import java.time.temporal.TemporalField;

import java.util.Objects;

/**

* 说明:localDate类研究

* @author carter

* 创建时间: 2019年11月11日 15:31

**/

public class LocalDateTest {

public static void main(String[] args) {

LocalDate localDate = LocalDate.of(2019,11,11);

print("localDate.getYear()

string 日期比较_java8-新的日期API相关推荐

  1. java instant获取微秒转成日期格式_Java8新特性时间日期库DateTime API及示例

    点击上方蓝字关注「程序新视界」 Java8新特性的功能已经更新了不少篇幅了,今天重点讲解时间日期库中DateTime相关处理.同样的,如果你现在依旧在项目中使用传统Date.Calendar和Simp ...

  2. 判断是否是日期格式_Java8新特性之新世间与日期

    接口中的默认方法与静态方法 Java 8中允许接口中包含具有具体实现的方法,该方法称为"默认方法",默认方法使用 default 关键字修饰. default String get ...

  3. java打印日期序列_Java8新特性之新日期API

    早期的日期 API 在早期也就是 Java 8 之前,JDK 原生比较有名的有两个类: Date 类 Calendar 类 这两个类相对来说用起来是比较困难的,之前我们往往是用的第三方的库. 新日期 ...

  4. sqlserver获取前一天的日期_Java8新特性时间日期库DateTime API及示例

    点击上方蓝字关注「程序新视界」 Java8新特性的功能已经更新了不少篇幅了,今天重点讲解时间日期库中DateTime相关处理.同样的,如果你现在依旧在项目中使用传统Date.Calendar和Simp ...

  5. java8 time工具_java8 Date/Time API 新的日期处理工具

    接上篇文章 java8 新特性 由于上篇过于庞大,使得重点不够清晰,本篇单独拿出 java8 的 Date/Time api 进行说明,新的日期时间工具全部都在 java.time 及其子包中. 新 ...

  6. 《Java8实战》笔记(12):新的日期和时间API

    新的日期和时间API 相信大多数有经验的程序员都会赞同Java 8之前的库对日期和时间的支持就非常不理想.值得高兴的是 Java 8中引入全新的日期和时间API就是要解决这一问题. Java 8之前的 ...

  7. 《Java 8 in Action》Chapter 12:新的日期和时间API

    在Java 1.0中,对日期和时间的支持只能依赖java.util.Date类.同时这个类还有两个很大的缺点:年份的起始选择是1900年,月份的起始从0开始. 在Java 1.1中,Date类中的很多 ...

  8. 摒弃Date、Calendar,使用新的日期API

    感谢传智播客老师深入细致的讲解 为什么会出现新的日期类API 将java.util.Date类束之高阁才是正确之道 -> Tim Yates 在Java面世之初,标准库就引入了两种用于处理日期和 ...

  9. Java日期与时间API(详解全部新与旧API,含代码例子)

    目录 前言必读 二.新与旧API 新的API: 旧的API: 初步使用大全(SimpleDateFormat) 三.代码例子 1.获取当前时间 2.字符串转化为时间 四.新的API 1.LocalDa ...

  10. 【Java 8】新的日期时间API

    本文参考书籍<Java 8实战>,陆明刚.劳佳  译,如有侵权,请联系删除! 在Java 1.0中,对日期和时间的支持只能依赖java.util.Date类.正如类名所表达的,这个类无法表 ...

最新文章

  1. Angular2入门教程-1
  2. krpano·分组图片地图插件
  3. linux中sleep再循环里,Linux sleep 语句以及循环 测试负载
  4. ABP 拦截器不工作
  5. 【MySQL】日期函数:日期、时间增减
  6. MySQL5.6 Waiting for Commit Lock
  7. web端 复合控件 响应回发
  8. Koa 中间件的执行
  9. html5画布太极图,canvas实现太极图
  10. javascript常见面试题之一:将字符串'get-element-by-id'转换成驼峰命名法;
  11. SAS基础练习(一)
  12. java list 某个重复列_Java 开发的编程噩梦,这些坑你没踩过算我输
  13. 爆料喽!!!开源日志库Logger的剖析分析
  14. 怎么快速调出计算机资源管理器,Win7下快速打开资源管理器的五个方法
  15. 兔子-蓝牙 bluetooth (二) 打开蓝牙
  16. LaTeX 多图 排列
  17. ecshop 评价仿京东仿淘宝 中评率 好评率 差评率
  18. 北大计算机专硕学费,北京大学专业硕士学费被曝高达2.2万元/年
  19. C语言拼图游戏——Windows下基于EasyX且支持鼠标与键盘操作
  20. 安卓桌面壁纸_火莹视频桌面:好玩的动态桌面壁纸软件,让你的桌面动起来

热门文章

  1. 客户端爬取-答网友问
  2. kali用Squid简单配置搭建http代理服务器
  3. Python学习(13)函数
  4. build-android-in-OS-X-Yosemite-Xcode-7
  5. Gradle学习系列之十——自定义Plugin(本系列完)
  6. 使COUNT(*)查询总数变快
  7. 基于python的快速傅里叶变换FFT(二)
  8. JS基础篇之作用域、执行上下文、this、闭包
  9. 2016年 CodePen 最热门的前端代码 Top 100
  10. Luogu5369 [PKUSC2018]最大前缀和