java根据时间戳 获取该时间戳所在周 月 年 最后时刻(的时间戳)
程序员文章站
2024-02-27 20:10:03
...
测试类
public class TestDate {
public static void main(String[] args) {
TimeData weekTime = DateUtil.getWeekTime(1604542728478l); //2020-11-05 10:18:48
System.out.println(weekTime+" weekTime");
Date date = new Date(1604542728478l);
System.out.println(date+" date"); //Thu Nov 05 10:18:48 CST 2020 = 2020-11-05 10:18:48
long monthTime = cn.hutool.core.date.DateUtil.endOfMonth(date).getTime();
System.out.println(monthTime+" monthTime"); //1606751999999 = 2020-11-30 23:59:59
long yearTime = cn.hutool.core.date.DateUtil.endOfYear(date).getTime();
System.out.println(yearTime+" yearTime"); //1609430399999 = 2020-12-31 23:59:59
}
}
实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class TimeData {
/**
* 数据查询的开始时间
*/
private Long startTime;
/**
* 数据查询的结束时间
*/
private Long endTime;
}
工具类
public class DateUtil {
public static TimeData getWeekTime(Long day) {
DateTime date = new DateTime(day);
//获取周的星期一
//判断周一是否在上个月
//日所在的月
int dayMonth = cn.hutool.core.date.DateUtil.month(date);
//周开始所在的月
DateTime beginOfWeek = cn.hutool.core.date.DateUtil.beginOfWeek(date);
int beginMonth = cn.hutool.core.date.DateUtil.month(beginOfWeek);
//周结束所在的月
DateTime endOfWeek = cn.hutool.core.date.DateUtil.endOfWeek(date);
int endMonth = cn.hutool.core.date.DateUtil.month(endOfWeek);
DateTime startTime;
DateTime endTime;
if (beginMonth == endMonth) {
//周开始和结束在一个月内
startTime = beginOfWeek;
endTime = endOfWeek;
} else if (beginMonth == dayMonth) {
//周开始和日在一个月内
startTime = beginOfWeek;
endTime = cn.hutool.core.date.DateUtil.endOfMonth(date);
} else {
//周结束和日在一个月内
startTime = cn.hutool.core.date.DateUtil.beginOfMonth(date);
endTime = endOfWeek;
}
endTime.setField(DateField.HOUR_OF_DAY, 23);
endTime.setField(DateField.SECOND, 59);
endTime.setField(DateField.MINUTE, 59);
//判断本周结束时间是否是下个月,是的话 取月结束时间,不是,取周结束时间
return new TimeData(startTime.getTime(), endTime.getTime());
}
}
运行结果
TimeData(startTime=1604246400000, endTime=1604851199999) weekTime
Thu Nov 05 10:18:48 CST 2020 date
1606751999999 monthTime
1609430399999 yearTime
这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!!
欢迎加入技术群聊。
上一篇: ASP.netMVC 导出数据
下一篇: 浅谈java监听器的作用