Java 中的date与字符串的转换以及日期间隔计算

一、日期与字符串的互相转换

  1. 将 date 转换为  string  用  sdf.format()

  2. 将 string 转换为 date 用 sdf.parse()

    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date  date = new Date();
    System.out.println("这个是date格式为string的数据:"+sdf.format(date));
    
    Date dt = sdf.parse("2021-11-11");      // 这样出来的结果是 datetime
    System.out.println("这是从string转换为date的数据:"+dt);
    
    java.sql.Date sdate = null;
    sdate = new java.sql.Date(dt.getTime());   // 这样出来的结果是 date
    System.out.println("这是用java.sql.Date对datetime转换的数据:"+sdate);
    
    结果:
    这个是date格式为string的数据:2021-09-17
    这是从string转换为date的数据:Thu Nov 11 00:00:00 CST 2021
    这是用java.sql.Date对datetime转换的数据:2021-11-11
    

二、日期之间的相隔计算

获取N天之前的日期 用Duration 或是 LocalDate

import java.time.Duration;
import java.time.Instant;
import java.time.LocalDate;

Instant ins2 = Instant.now().plus(Duration.ofDays(-2));  
// 这里的-2 是指取 之前两天的日期,可以根据需求修改。Duration的日期是 instant
System.out.println("这是用duration获取的2天之前的日期:"+ins2);
// localDate 也是可以计算相隔N天或是N年的日期,其格式是这样的  2021-09-15
LocalDate ld = LocalDate.now().plusDays(-2);
System.out.println("这是用LocalDate获取的2天之前的日期:"+ld);
结果:
这是用duration获取的2天之前的日期:2021-09-15T09:24:18.255568400Z
这是用LocalDate获取的2天之前的日期:2021-09-15

获取两个时间的间隔天数或是月用Period

import java.time.Period;

LocalDate ld2 = LocalDate.now();
LocalDate ld3 = LocalDate.of(2019, 9, 11);
Period per  = Period.between(ld3, ld2);  //前面较早的日期应该放前面,不然会是个负值。
System.out.println("这是用period获取的两时间之间的相隔年份:"+per.getYears());
System.out.println("这是用period获取的两时间之间的相隔月份:"+per.getMonths());
System.out.println("这是用period获取的两时间之间的相隔天数:"+per.getDays());
结果:
这是用period获取的两时间之间的相隔年份:2
这是用period获取的两时间之间的相隔月份:0
这是用period获取的两时间之间的相隔天数:6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值