java 获取两个日期的天数间隔

我会带着你远行 2023-10-18 08:54 127阅读 0赞

java 获取两个日期的天数间隔

主要使用 java8 的

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

  1. package com.example.books.utils;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.time.LocalDate;
  5. import java.time.temporal.ChronoUnit;
  6. import java.util.Date;
  7. public class DateTimeUtil {
  8. /**
  9. * 时间戳转日期时间
  10. * @param s
  11. * @return
  12. */
  13. public static Date stampToDate(String s){
  14. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  15. long lt = new Long(s);
  16. return new Date(lt);
  17. }
  18. /**
  19. * 计算现在到某一个日期的间隔天数
  20. * @param endDate
  21. * @return
  22. */
  23. public static long currentToEnd(Date endDate){
  24. String[] currentStr = new SimpleDateFormat("yyyy-MM-dd").format(new Date()).split("-");
  25. String[] endStr = new SimpleDateFormat("yyyy-MM-dd").format(endDate).split("-");
  26. Integer currentYear = Integer.parseInt(currentStr[0]);
  27. Integer currentMonth = Integer.parseInt(currentStr[1]);
  28. Integer currentDay = Integer.parseInt(currentStr[2]);
  29. Integer endYear = Integer.parseInt(endStr[0]);
  30. Integer endMonth = Integer.parseInt(endStr[1]);
  31. Integer endDay = Integer.parseInt(endStr[2]);
  32. LocalDate endLocalDate = LocalDate.of(endYear,endMonth,endDay);
  33. return LocalDate.now().until(endLocalDate,ChronoUnit.DAYS);
  34. }
  35. /**
  36. * 计算两个日期之间的间隔天数
  37. * @param startDate
  38. * @param endDate
  39. * @return
  40. */
  41. public static long startToEnd(Date startDate, Date endDate){
  42. String[] startStr = new SimpleDateFormat("yyyy-MM-dd").format(startDate).split("-");
  43. String[] endStr = new SimpleDateFormat("yyyy-MM-dd").format(endDate).split("-");
  44. Integer startYear = Integer.parseInt(startStr[0]);
  45. Integer startMonth = Integer.parseInt(startStr[1]);
  46. Integer startDay = Integer.parseInt(startStr[2]);
  47. Integer endYear = Integer.parseInt(endStr[0]);
  48. Integer endMonth = Integer.parseInt(endStr[1]);
  49. Integer endDay = Integer.parseInt(endStr[2]);
  50. LocalDate endLocalDate = LocalDate.of(endYear,endMonth,endDay);
  51. LocalDate startLocalDate = LocalDate.of(startYear,startMonth,startDay);
  52. return startLocalDate.until(endLocalDate,ChronoUnit.DAYS);
  53. }
  54. public static void main(String[] args) {
  55. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  56. Date startDate = null;
  57. try {
  58. startDate = sdf.parse("2018-09-01 15:42:55");
  59. } catch (ParseException e) {
  60. e.printStackTrace();
  61. }
  62. System.out.println("currentToEnd:"+DateTimeUtil.currentToEnd(startDate));
  63. }
  64. }

发表评论

表情:
评论列表 (有 0 条评论,127人围观)

还没有评论,来说两句吧...

相关阅读