jdk 1.8 LocalDateTime的常见使用场景

程序猿学社的GitHub,欢迎Star
github技术专题
本文已记录到github

文章目录

  • 前言
  • 日常使用

前言

在日常开发过程中,操作时间,经常使用到的是Calendar类,今天我们使用jdk1.8的特性,操作LocalDate类

日常使用

private static LocalDate getLocalDate(String dateTime) {
		DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
		//2.把字符串转成localDate
		return LocalDateTime.parse(dateTime, df).toLocalDate();
	}

-把字符串时间,转为LocalDate格式

/**
	 * 获取当月的第一天
	 * @return
	 */
	public static final String getFirstMonthDay(String dateTime){
		LocalDate localDate = getLocalDate(dateTime);
		LocalDate with = localDate.with(TemporalAdjusters.firstDayOfMonth());
		String firstDay = with+" 00:00:00";
		return firstDay;
	}

	/**
	 * 获取当月的最后一天
	 * @return
	 */
	public static final String getLastMonthDay(String dateTime){
		LocalDate localDate = getLocalDate(dateTime);
		LocalDate with = localDate.with(TemporalAdjusters.lastDayOfMonth());
		String firstDay = with+" 00:00:00";
		return firstDay;
	}

	/**
	 * 获取当月的第一天(周几)
	 * @return
	 */
	public static final int getFirstMonthDayByWeek(String dateTime){
		LocalDate localDate = getLocalDate(dateTime);
		LocalDate with = localDate.with(TemporalAdjusters.firstDayOfMonth());
		DayOfWeek dayOfWeek = with.getDayOfWeek();
		return  dayOfWeek.getValue();
	}

	/**
	 * 获取当月的最后一天(周几)
	 * @return
	 */
	public static final int getLastMonthDayByWeek(String dateTime){
		LocalDate localDate = getLocalDate(dateTime);
		LocalDate with = localDate.with(TemporalAdjusters.lastDayOfMonth());
		DayOfWeek dayOfWeek = with.getDayOfWeek();
		return  dayOfWeek.getValue();
	}
	/**
	 * 获取上个月最后一天(多少号)
	 * @return
	 */
	public static  int getLastMonthDayValue(String dateTime){
		LocalDate localDate = getLocalDate(dateTime);
		localDate = localDate.minusMonths(1);
		LocalDate lastDay = localDate.with(TemporalAdjusters.lastDayOfMonth());
		return lastDay.getDayOfMonth();
	}

	/**
	 * 从小到大(取一个月的数据)
	 */
	public static List<String> getAscDateList(String startTime, String endTime) {
		LocalDate startDate = getLocalDate(startTime);
		LocalDate endDate = getLocalDate(endTime);

		List<String> result = new ArrayList<>();
		LocalDate tempDate = null;//用户存储中间变量
		Long num = endDate.toEpochDay() - startDate.toEpochDay();
		for (int i = 0; i <= num; i++) {
			tempDate = startDate;
			if (tempDate.toEpochDay() - endDate.toEpochDay() <= 0) {
				Date yyyyMMdd = TimeUtils.convertDate(startDate.toString(), "yyyy-MM-dd");
				//14点整,取一张图片
				result.add(TimeUtils.converStringDate(yyyyMMdd,"yyyyMMdd"));
				startDate = tempDate.plusDays(1);
			}
		}
		//System.out.println(result);
		return result;
	}

作者:程序猿学社
原创公众号:『程序猿学社』,专注于java技术栈,分享java各个技术系列专题,以及各个技术点的面试题。
原创不易,转载请注明来源(注明:来源于公众号:程序猿学社, 作者:程序猿学社)。

你可能感兴趣的:(#,jdk新特性,LocalDateTime,时间操作类,jdk1.8,LocalDate)