四时宝库

程序员的知识宝库

Java 计算常用时间工具类(java时间计时器)

public class DateRangeUtils {

/**

* 昨天零点

*/

public static Date yesterday() {

Calendar calendar = Calendar.getInstance();

calendar.add(Calendar.DATE, -1);

return DateUtils.truncate(calendar.getTime(), Calendar.DATE);

}

/**

* 今天零点

*/

public static Date today() {

Calendar calendar = Calendar.getInstance();

return DateUtils.truncate(calendar.getTime(), Calendar.DATE);

}

/**

* 上周周一零点

*/

public static Date lastMonday() {

Calendar calendar = Calendar.getInstance();

calendar.add(Calendar.DAY_OF_MONTH, -7);

calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

return DateUtils.truncate(calendar.getTime(), Calendar.DATE);

}

/**

* 本周周一零点

*/

public static Date monday() {

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

return DateUtils.truncate(calendar.getTime(), Calendar.DATE);

}

/**

* 去年1月1日零点

*/

public static Date lastYear() {

Calendar calendar = Calendar.getInstance();

calendar.add(Calendar.YEAR, -1);

calendar.set(Calendar.DAY_OF_YEAR, Calendar.YEAR);

return DateUtils.truncate(calendar.getTime(), Calendar.DATE);

}

/**

* 今年1月1日零点

*/

public static Date year() {

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.DAY_OF_YEAR, Calendar.YEAR);

return DateUtils.truncate(calendar.getTime(), Calendar.DATE);

}

/**

* 计算指定天数的日期

*/

public static Date designatedDate(int day) {

Calendar calendar = Calendar.getInstance();

calendar.add(Calendar.DATE, day);

return DateUtils.truncate(calendar.getTime(), Calendar.DATE);

}

/**

* 计算与当前时间差值

*/

public static int dateDelta(Date date) {

Calendar calendar = Calendar.getInstance();

long delta = calendar.getTime().getTime() - date.getTime();

return (int)delta;

}

/**

* 补齐时间区间

*/

public static List<String> completionDate(LocalDateTime startDate, LocalDateTime endDate) {

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

List<String> dateList = new ArrayList<>();

for (int i = 0; !Duration.between(startDate.plusDays(i), endDate).isNegative(); i++) {

dateList.add(startDate.plusDays(i).format(dateTimeFormatter));

}

return dateList;

}

public static void main(String[] args) {

System.out.println(lastMonday());

System.out.println(monday());

System.out.println(yesterday());

System.out.println(today());

System.out.println(lastYear());

System.out.println(year());

System.out.println(designatedDate(-365));

System.out.println(designatedDate(365));

System.out.println(dateDelta(yesterday()));

LocalDateTime localDate = LocalDateTime.now();

LocalDateTime localDate1 = LocalDateTime.now().minusDays(30);

List<String> strings = completionDate(localDate1, localDate);

strings.forEach(System.out::println);

}

}

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接