Java日期与时间

Date:

  • 概述:Date类的对象在Java中代表的是当前所在系统的此刻日期时间。
  • Date的构造器:public Date() 创建一个Date对象,代表的是系统当前此刻日期时间。public Date(long time) 把时间毫秒值转换成Date日期对象。
  • Date的常用方法:public long getTime() 获取时间对象的毫秒值。public void setTime(long time) 设置日期对象的时间为当前时间毫秒值对应的时间。

simpleDateFormat类:

  • 作用:
    • 可以对Date对象或时间毫秒值格式化成我们喜欢的时间形式。
    • 也可以把字符串的时间形式解析成日期对象。

  • simpleDateFormat的构造器:
    • public SimpleDateFormat() 构造一个SimpleDateFormat,使用默认格式
    • public SimpleDateFormat(String pattern) 构造一个SimpleDateFormat,使用指定的格式。、
  • SimpleDateFormat的格式化方法:
    • public final String format(Date date) 将日期格式化成日期/时间字符串
    • public final String format(Object time) 将时间毫秒值式化成日期/时间字符串
  • SimpleDateFormat解析字符串时间成为日期对象
    • public Date parse(String source) 从给定字符串的开始解析文本以生成日期。

Calendar:

  • 概述:Calendar代表了系统此刻日期对应的日历对象。Calendar是一个抽象类,不能直接创建对象。
  • Calendar日历类创建日历对象的方法:public static Calendar getInstance()获取当前日历对象。
  • Calendar常用方法:
    • public int get(int field) 取日期中的某个字段信息。
    • public void set(int field ,int value) 修改日历的某个字段信息。
    • public void add(int field,int amount) 为某个字段增加/减少指定的值
    • public final Date getTime() 拿到此刻日期对象。
    • public long getTimeInMillis() 拿到此刻时间毫秒值
  • 注意:calendar是可变日期对象,一旦修改后其对象本身表示的时间将产生变化。

JDK8新增日期类:

  • 从Java 8开始,java.time包提供了新的日期和时间APl,主要涉及的类型有:
    • LocalDate:不包含具体时间的日期。
    • LocalTime:不含日期的时间。
    • LocalDateTime:包含了日期及时间。
    • Instant:代表的是时间戳。
    • DateTimeFormatter用于做时间的格式化和解析的。
    • Duration:用于计算两个“时间”间隔。
    • Period:用于计算两个“日期”间隔。
  • 新增的API严格区分了时刻、本地日期、本地时间,并且,对日期和时间进行运算更加方便。其次,新API的类型几乎全部是不变类型(和String的使用类似),可以放心使用不必担心被修改。
  • LocalDateTime综合了LocalDate和LocalTime里面的方法。这些方法返回的是一个新的实例引用,因为LocalDateTime ,LocalDate . LocalTime 都是不可变的。

plusDays, plusweeks, plusMonths, plusYears

向当前LocalDate对象添加几天、几周、几个月、几年

minusDays, minuswceks,minusMonths, minusYears

从当前LocalDate对象减去几天、几周、几个月、几年

withDayOfMonth, withDayofYear, withMonth, withYear

将月份天数、年份天数、月份、年份修改为指定的值并返回新的LocalDate对象

isBefore, isAfter

比较两个LocalDate

lnstant时间戳:

  • JDK8获取时间戳特别简单,且功能更丰富。Instant类由一个静态的工厂方法now()可以返回当前时间戳。
  • 时间戳是包含日期和时间的,与java.util.Date很类似,事实上Instant就是类似JDK8以前的Date。
  • lnstant和Date这两个类可以进行转换。

DateTimeFormatter

  • 在JDK8中,引入了一个全新的日期与时间格式器DateTimeFormatter。正反都能调用format方法。

Period:

  • 在Java8中,我们可以使用以下类来计算日期间隔差异: java.time.Period
  • 主要是 Period类方法getYears(),getMonths()和getDays()来计算,只能精确到年月日。
  • 用于LocalDate 之间的比较。

Duration:

  • 在Java8中,我们可以使用以下类来计算时间间隔差异: java.time.Duration
  • 提供了使用基于时间的值测量时间量的方法。
  • 用于LocalDateTime之间的比较。也可用于Instant 之间的比较。

java.time.temporal.ChronoUnit:

  • ChronoUnit类可用于在单个时间单位内测量一段时间,这个工具类是最全的了,可以用于比较所有的时间单位。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奥利奥是甜的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值