LocalDate first = now.with(TemporalAdjusters.firstDayOfMonth());
//月最后一天
LocalDate last = now.with(TemporalAdjusters.lastDayOfMonth());
//年第一天
localDate.with(TemporalAdjusters.firstDayOfYear());
//年最后一天
localDate.with(TemporalAdjusters.lastDayOfYear();
public static void main(String[] args) {
LocalDate now = LocalDate.now();
// 今天是星期几
DayOfWeek dayOfWeek = now.getDayOfWeek();
System.out.println("今天星期" + dayOfWeek.getValue());
// 本周的第一天(包括当天)
LocalDate first = now.minusDays(dayOfWeek.getValue());
System.out.println("本周第一天:" + first);
// 本周的最后一天(不包括当天)
LocalDate last = now.plusDays(7 - dayOfWeek.getValue()-1);
System.out.println("本周最后一天:" + last);
// 上周的第一天(包括当天)
System.out.println("上周的第一天:" + first.minusWeeks(1));
// 上周的最后一天(不包括当天)
System.out.println("上周的最后一天:" + last.minusWeeks(1));
* 获取一年中第N周的日期
* @param year 年
* @param num 第N周
* @param minimalDaysInFirstWeek 第一周至少几天
* @param dayOfWeek 星期
* @return
public static LocalDate getDateByYearAndWeekNumAndDayOfWeek(Integer year, Integer num, Integer minimalDaysInFirstWeek, DayOfWeek dayOfWeek) {
//初始化,第一周至少1天
WeekFields wfs = WeekFields.of(DayOfWeek.MONDAY, minimalDaysInFirstWeek);
//一年最后一天日期的LocalDate,如果该天获得的周数为1或52,那么该年就只有52周,否则就是53周
//获取指定时间所在年的周数
int maxNum = LocalDate.of(year, 12, 31).get(wfs.weekOfWeekBasedYear());
maxNum = maxNum == 1 ? 52 : maxNum;
System.out.println(year + "年有" + maxNum + "周");
//周数小于10在前面补个0
String numStr = num < 10 ? "0" + String.valueOf(num) : String.valueOf(num);
//2019-W01-01获取第一周的周一日期,2019-W02-07获取第二周的周日日期
String weekDate = String.format("%s-W%s-%s", year, numStr, dayOfWeek.getValue());
return LocalDate.parse(weekDate, DateTimeFormatter.ISO_WEEK_DATE);
public static void main(String[] args) {
System.out.println(DateUtil.getDateByYearAndWeekNumAndDayOfWeek(2023, 1,1, DayOfWeek.MONDAY));
LocalDate now //月第一天 LocalDate first = now.with(TemporalAdjusters.firstDayOfMonth()); //月最后一天 LocalDate last = now.with(TemporalAdjusters.lastDayOfMonth());//年第一天localDate.with(TemporalAdjusters.firstDayOfYear().
最近再弄日历相关的东西,然后就在获取每月所有日期,每周所有日期,每周,每月,每年的第一天和最后一天等,工具类没有这些方法,就写下来记录一下:
* 一周的第一天
* @param localDate 当地日期
* @return {@link LocalDate}
public static LocalDate firstDayOfWeek(LocalDate localDate){
return localD
根据需求需要取得当天的零点
LocalDateTime today_start =
LocalDateTime.of(
LocalDate.now(),
LocalTime.MIN);//当天零点
String td_st_str = today_start.format(
DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
public static void main(String[] args) {
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDateTime date = LocalDateTime.now();
LocalDateTime firstda...
如:获得 2015-03-01 日的前7天的日期 :
代码如下:
select date_sub(‘2015-03-01’,interval 7 day) from rs_pay_data;
输出: 2015-02-22
您可能感兴趣的文章:Mysql根据时间查询日期的优化技巧mysql 获取昨天日期、今天日期、明天日期以及前一个小时和后一个小时的时间解析MySQL中存储时间日期类型的选择问题JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresqlMySQL 获得当前日期时间 函数浅谈M
// 获取今年第一天及最后一天
LocalDateTime firstDayOfYear = LocalDateTime.of(LocalDate.from(LocalDateTime.now().with(TemporalAdjusters.firstDayOfYear())), LocalTime.MIN);
LocalDateTime lastDayOfYear = LocalDateTime.of(LocalDate.from(LocalDateTime.now().with(Temporal...
-
LocalDateTime转为Date
- Date转为
LocalDateTime
-
LocalDateTime转为String(yyyy-MM-dd HH:mm:ss)
-
LocalDateTime转为String
- String转为
LocalDateTime
-
LocalDateTime转为Unix时间戳
- Unix时间戳转为
LocalDateTime
-
LocalDateTime转为
Java时间戳(TimeMillis)
-
Java时间戳(TimeMillis)转为
LocalDateTime
-
获取年的开始时间
-
获取某
年的开始时间
-
获取年的结束时间
-
获取某
年的结束时间
-
获取月的开始时间
-
获取某
月的开始时间
-
获取月的结束时间
-
获取某
月的结束时间
-
获取日的开始时间
-
获取某日的开始时间
-
获取日的结束时间
-
获取某日的结束时间
LocalDateTime now = LocalDateTime.now(); // 获取当前日期时间
LocalDateTime tomorrow = now.plusDays(1); // 获取后一天的日期时间
其中,plusDays方法的参数表示要增加的天数,如果要获取前一天的日期,可以使用minusDays方法。