java时间日期类的运用

字符串转化为日期时间,

import java.time.LocalDate;

public class DateTest8 {

  public static void main(String[] args) {
    // 定义一个时间字符串,日期是2019年1月1日
    String date = "2019-01-01";

    // 把字符串转化位 LocalDate 对象,并得到字符串匹配的日期
    LocalDate date2 = LocalDate.parse(date);
    // 打印出日期
    System.out.println(date2.toString());
  }
}

如上所示,LocalDateTime.parse(date)中的parse方法可以把日期字符串转化为日期类型,这个字符串格式是年-月-日 时:分:秒(英文格式是yyyy-MM-dd HH:mm:ss),其中年是四位yyyy,月是两位MM,日也是两位dd这个不能错。
如果日期格式不是yyyy-MM-dd则需要借助yyyy-MM-dd,那么就要借助 DateTimeFormatter
比如

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class DateTest81 {

  public static void main(String[] args) {
    // 定义一个时间字符串,日期是2019年1月1日
    String date = "2019/01/01";

    DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy/MM/dd");

    // 把字符串转化位 LocalDate 对象,并得到字符串匹配的日期
    LocalDate date2 = LocalDate.parse(date,df);
    // 打印出日期
    System.out.println(date2.toString());
  }
}

很多时候我们也 需要计算日期,比如预定酒店,2019年5月1号入住,3天后离店,所以,我们只需要对日期+3就可以得到离店时间。LocalDate类有一个plusDays(天数)用于执行天数的相加。例如

import java.time.LocalDate;

public class DateTest9 {

  public static void main(String[] args) {

    LocalDate leaveTime = getLeaveTime("2019-05-01", 4);
    System.out.println(leaveTime.toString());
  }

  /**
   * 根据入住时间和入住天数得到离店时间
   *
   * @param checkInTime
   * @param days
   * @return
   */
  public static LocalDate getLeaveTime(String checkInTime, int days) {
    // 把字符串转化为 LocalDate 类型
    LocalDate time = LocalDate.parse(checkInTime);
    // 使用 plusDays 添加天数,得到新的时间
    LocalDate leaveTime = time.plusDays(days);
    return leaveTime;
  }

}

除了处理天数相加外,还可以处理其他的日期时间计算,我们整体看一下

import java.time.LocalDate;

public class DateTest10 {

  public static void main(String[] args) {

    LocalDate now = LocalDate.now();
    System.out.println("当前:" + now.toString());

    System.out.println("加法运算");
    System.out.println("加1天:" + now.plusDays(1));
    System.out.println("加1周:" + now.plusWeeks(1));
    System.out.println("加1月:" + now.plusMonths(1));
    System.out.println("加1年:" + now.plusYears(1));

    System.out.println("减法运算");
    System.out.println("减1天:" + now.minusDays(1));
    System.out.println("减1周:" + now.minusWeeks(1));
    System.out.println("减1月:" + now.minusMonths(1));
    System.out.println("减1年:" + now.minusYears(1));

  }

}

两个日期时间的判断,

import java.time.LocalDate;

public class DateTest11 {

  public static void main(String[] args) {

    LocalDate now = LocalDate.now();

    // 可以对两个 LocalDate 进行比较,
    // 可以判断一个日期是否在另一个日期之前或之后,
    // 或者判断两个日期是否是同年同月同日。

    boolean isBefore = now.minusDays(1).isBefore(LocalDate.now());

    System.out.println("是否在当天之前:" + isBefore);

    boolean isAfter = now.plusDays(1).isAfter(LocalDate.now());
    System.out.println("是否在当天之后:" + isAfter);


    // 判断是否是当天
    boolean sameDate = now.isEqual(LocalDate.now());
    System.out.println("是否在当天:" + sameDate);
  }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值