欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > java获取当日、本周、本月、本年

java获取当日、本周、本月、本年

2024/10/25 20:24:17 来源:https://blog.csdn.net/u011974797/article/details/139675850  浏览:    关键词:java获取当日、本周、本月、本年

1、使用 LocalDateTime

最后的格式需要自己转换一下

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.temporal.TemporalAdjusters;public class DateUtils {public static void main(String[] args) {LocalDate today = LocalDate.now();LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth());LocalDate firstDayOfYear = today.withDayOfYear(1);LocalDate lastDayOfYear = today.withDayOfYear(today.lengthOfYear());// 当日LocalDateTime startOfDay = LocalDateTime.of(today, LocalTime.MIN);LocalDateTime endOfDay = LocalDateTime.of(today, LocalTime.MAX);// 本周(周一到周日)LocalDate startOfWeek = today.with(TemporalAdjusters.previousOrSame(java.time.DayOfWeek.MONDAY));LocalDate endOfWeek = today.with(TemporalAdjusters.nextOrSame(java.time.DayOfWeek.SUNDAY));LocalDateTime startOfWeekDateTime = LocalDateTime.of(startOfWeek, LocalTime.MIN);LocalDateTime endOfWeekDateTime = LocalDateTime.of(endOfWeek, LocalTime.MAX);// 本月LocalDateTime startOfMonth = LocalDateTime.of(firstDayOfMonth, LocalTime.MIN);LocalDateTime endOfMonth = LocalDateTime.of(lastDayOfMonth, LocalTime.MAX);// 本年LocalDateTime startOfYear = LocalDateTime.of(firstDayOfYear, LocalTime.MIN);LocalDateTime endOfYear = LocalDateTime.of(lastDayOfYear, LocalTime.MAX);// 打印结果System.out.println("当日开始时间: " + startOfDay);System.out.println("当日结束时间: " + endOfDay);System.out.println("本周开始时间: " + startOfWeekDateTime);System.out.println("本周结束时间: " + endOfWeekDateTime);System.out.println("本月开始时间: " + startOfMonth);System.out.println("本月结束时间: " + endOfMonth);System.out.println("本年开始时间: " + startOfYear);System.out.println("本年结束时间: " + endOfYear);}
}

2、使用 Calendar

import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;public class DateUtil {/*** 获取当天开始时间** @return*/public static Date getDayBegin() {Calendar cal = Calendar.getInstance();//0点cal.set(Calendar.HOUR_OF_DAY, 0);//0分cal.set(Calendar.MINUTE, 0);//0秒cal.set(Calendar.SECOND, 0);//0毫秒cal.set(Calendar.MILLISECOND, 0);return cal.getTime();}/*** 获取当天结束时间** @return*/public static Date getDayEnd() {Calendar cal = Calendar.getInstance();//23点cal.set(Calendar.HOUR_OF_DAY, 23);//59分cal.set(Calendar.MINUTE, 59);//59秒cal.set(Calendar.SECOND, 59);return cal.getTime();}/*** 获取昨天开始时间** @return*/public static Date getBeginDayOfYesterday() {Calendar cal = Calendar.getInstance();//当天开始时间cal.setTime(getDayBegin());//当天月份天数减1cal.add(Calendar.DAY_OF_MONTH, -1);return cal.getTime();}/*** 获取昨天结束时间** @return*/public static Date getEndDayOfYesterday() {Calendar cal = Calendar.getInstance();//当天结束时间cal.setTime(getDayEnd());//当天月份天数减1cal.add(Calendar.DAY_OF_MONTH, -1);return cal.getTime();}/*** 获取明天开始时间** @return*/public static Date getBeginDayOfTomorrow() {Calendar cal = Calendar.getInstance();//当天开始时间cal.setTime(getDayBegin());//当天月份天数加1cal.add(Calendar.DAY_OF_MONTH, 1);return cal.getTime();}/*** 获取明天结束时间** @return*/public static Date getEndDayOfTomorrow() {Calendar cal = Calendar.getInstance();//当天结束时间cal.setTime(getDayEnd());//当天月份天数加1cal.add(Calendar.DAY_OF_MONTH, 1);return cal.getTime();}/*** 获取某个日期的开始时间** @param d* @return*/public static Timestamp getDayStartTime(Date d) {Calendar calendar = Calendar.getInstance();if (null != d) {calendar.setTime(d);}calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);calendar.set(Calendar.MILLISECOND, 0);return new Timestamp(calendar.getTimeInMillis());}/*** 获取某个日期的结束时间** @param d* @return*/public static Timestamp getDayEndTime(Date d) {Calendar calendar = Calendar.getInstance();if (null != d) {calendar.setTime(d);}calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);calendar.set(Calendar.MILLISECOND, 999);return new Timestamp(calendar.getTimeInMillis());}/*** 获取本周的开始时间** @return*/public static Date getBeginDayOfWeek() {Date date = new Date();if (date == null) {return null;}Calendar cal = Calendar.getInstance();cal.setTime(date);int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);if (dayOfWeek == 1) {dayOfWeek += 7;}cal.add(Calendar.DATE, 2 - dayOfWeek);return getDayStartTime(cal.getTime());}/*** 获取本周的结束时间** @return*/public static Date getEndDayOfWeek() {Calendar cal = Calendar.getInstance();cal.setTime(getBeginDayOfWeek());cal.add(Calendar.DAY_OF_WEEK, 6);Date weekEndSta = cal.getTime();return getDayEndTime(weekEndSta);}/*** 获取上周开始时间*/@SuppressWarnings("unused")public static Date getBeginDayOfLastWeek() {Date date = new Date();if (date == null) {return null;}Calendar cal = Calendar.getInstance();cal.setTime(date);int dayofweek = cal.get(Calendar.DAY_OF_WEEK);if (dayofweek == 1) {dayofweek += 7;}cal.add(Calendar.DATE, 2 - dayofweek - 7);return getDayStartTime(cal.getTime());}/*** 获取上周的结束时间** @return*/public static Date getEndDayOfLastWeek() {Calendar cal = Calendar.getInstance();cal.setTime(getBeginDayOfLastWeek());cal.add(Calendar.DAY_OF_WEEK, 6);Date weekEndSta = cal.getTime();return getDayEndTime(weekEndSta);}/*** 获取今年是哪一年** @return*/public static Integer getNowYear() {Date date = new Date();GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();gc.setTime(date);return Integer.valueOf(gc.get(1));}/*** 获取本月是哪一月** @return*/public static int getNowMonth() {Date date = new Date();GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();gc.setTime(date);return gc.get(2) + 1;}/*** 获取本月的开始时间** @return*/public static Date getBeginDayOfMonth() {Calendar calendar = Calendar.getInstance();calendar.set(getNowYear(), getNowMonth() - 1, 1);return getDayStartTime(calendar.getTime());}/*** 获取本月的结束时间** @return*/public static Date getEndDayOfMonth() {Calendar calendar = Calendar.getInstance();calendar.set(getNowYear(), getNowMonth() - 1, 1);int day = calendar.getActualMaximum(5);calendar.set(getNowYear(), getNowMonth() - 1, day);return getDayEndTime(calendar.getTime());}/*** 获取上月的开始时间** @return*/public static Date getBeginDayOfLastMonth() {Calendar calendar = Calendar.getInstance();calendar.set(getNowYear(), getNowMonth() - 2, 1);return getDayStartTime(calendar.getTime());}/*** 获取上月的结束时间** @return*/public static Date getEndDayOfLastMonth() {Calendar calendar = Calendar.getInstance();calendar.set(getNowYear(), getNowMonth() - 2, 1);int day = calendar.getActualMaximum(5);calendar.set(getNowYear(), getNowMonth() - 2, day);return getDayEndTime(calendar.getTime());}/*** 获取本年的开始时间** @return*/public static Date getBeginDayOfYear() {Calendar cal = Calendar.getInstance();cal.set(Calendar.YEAR, getNowYear());cal.set(Calendar.MONTH, Calendar.JANUARY);cal.set(Calendar.DATE, 1);return getDayStartTime(cal.getTime());}/*** 获取本年的结束时间** @return*/public static Date getEndDayOfYear() {Calendar cal = Calendar.getInstance();cal.set(Calendar.YEAR, getNowYear());cal.set(Calendar.MONTH, Calendar.DECEMBER);cal.set(Calendar.DATE, 31);return getDayEndTime(cal.getTime());}
}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com