Java中的时间

早期Java版本

  • 早期JDK使用Date类来表示一个日期,之前推荐使用Calendar类
  • Calendar代表一个抽象的日历,我们常用的公历由其子类GregorianCalendar表示
  • 通常我们用Calendar.getInstance()方法获得一个默认的日历对象
  • 月份的起始值是0而不是1
Calendar的容错性
  • 默认情况下,Calendar会自动“向上”增加日期值,比如设置月份13会导致year+1
  • 如果希望禁止这种“自动更正”的功能,可以调用其setLenient方法时限
Calendar的延迟特性
  • 可以多次带哦用Calendar的set方法调整日期值但只有第一次尝试范根它时值才会最终更新

Java8 之后

为日期和时间处理提供了新的API,改进了原有的设计

  • Instant类的实例代表时间轴(time-line)中的一个时刻,它有一个静态方法now()可以取出当前时间
  • Duration则代表一个时间段(比如“10s长的一段时间”)
import java.time.Duration;
import java.time.Instant;
import java.util.Calendar;

public class welcome1{
	public static void main(String args[]) {
	
	    Calendar cal = Calendar.getInstance();
	    System.out.println(cal);
	    Instant ints = Instant.now();
	    System.out.println(ints);
	    Instant ints1 = Instant.now();
	    System.out.println(ints1);
	    Duration dur = Duration.between(ints, ints1);
	    System.out.println(dur.toMillis());
	}
}

本地时间和日期

使用LocalDate、LocalTime、LocalDateTime表示本地时区的时间和日期

public static void main(String[] args)
{
    LocalDate currentDate = LocalDate.now();
    System.out.println(currentDate);
    //2020-03-15
    LocalDate specificDate = LocalDate.of(2000,1,1);
    System.out.println(specificDate);
    //2000-01-01现在月份是基于1的了
    LocalTime currentTime = LocalTime.now();
    System.out.println(currentTime);
    //15:43:52.304714
    LocalTime specificTime = LocalTime.of(14,10,12);
    System.out.println(specificTime);
    //14:10:12
    LocalDateTime currentDT = LocalDateTime.now();
    System.out.println(currentDT);
    //2020-03-15T15:46:46.978545
    LocalDateTime specificDT = LocalDateTime.of(specificDate,specificTime);
    System.out.println(specificTime);
    //2000-01-01T14:10:12
}

日期格式化

  • 使用DateTimeFormatter格式化日期

在这里插入图片描述
在这里插入图片描述

处理时区

每个时区都有一个ZoneId,要获取特定时区的时间,使用ZonedDateTime类
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值