Java 获取昨天、明天、半年、一年、前十分钟、前一个月等的时间

前言

Java学习路线个人总结-博客
❤欢迎点赞👍收藏⭐留言 📝分享给需要的小伙伴

public static void main(String[] args) throws IOException {
        Map<String, String> week = getDateScope("week", null);
        Map<String, String> dateHHMMSSScope = getDateHHMMSSScope("10min", null);

        System.out.println(week);
        System.out.println(dateHHMMSSScope);
    	//{minDate=2020-07-02, maxDate=2020-07-09}
		//{minDate=2020-07-02 09:08:44, maxDate=2020-07-02 09:18:44}
    }

    public static Map<String, String> getDateScope(String scope, Map<String, String> detail) {
        Map<String, String> dateMap = new HashMap<>();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date date = new Date();
        String minDate = format.format(date);
        dateMap.put("minDate", minDate);

        Calendar c = Calendar.getInstance();
        switch (scope) {
            case "week"://七天
                c.setTime(new Date());
                c.add(Calendar.DATE, 7);
                Date d = c.getTime();
                String maxDate = format.format(d);
                dateMap.put("maxDate", maxDate);
                break;

            case "halfMonth"://半个月
                c.setTime(new Date());
                c.add(Calendar.DATE, 15);
                Date h = c.getTime();
                String halfMonth = format.format(h);
                dateMap.put("maxDate", halfMonth);
                break;

            case "month"://一个月
                c.setTime(new Date());
                c.add(Calendar.MONTH, 1);
                Date m = c.getTime();
                String mon = format.format(m);
                dateMap.put("maxDate", mon);
                break;

            case "threeMonth"://三个月
                c.setTime(new Date());
                c.add(Calendar.MONTH, 3);
                Date m3 = c.getTime();
                String mon3 = format.format(m3);
                dateMap.put("maxDate", mon3);
                break;

            case "halfYear"://半年
                c.setTime(new Date());
                c.add(Calendar.MONTH, 6);
                Date m6 = c.getTime();
                String mon6 = format.format(m6);
                dateMap.put("maxDate", mon6);
                break;

            case "year"://一年
                c.setTime(new Date());
                c.add(Calendar.YEAR, 1);
                Date y = c.getTime();
                String year = format.format(y);
                dateMap.put("maxDate", year);
                break;
            case "cus"://自定义
                dateMap = detail;
                break;

        }
        return dateMap;
    }

    public static Map<String, String> getDateHHMMSSScope(String scope, Map<String, String> detail) {
        Map<String, String> dateMap = new HashMap<>();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar c = Calendar.getInstance();
        switch (scope) {
            case "10min"://十分钟前
                Date tenMinutes = new Date();
                c.setTime(tenMinutes);
                c.add(Calendar.MINUTE, -10);
                Date d = c.getTime();
                String min = format.format(d);
                dateMap.put("minDate", min);
                dateMap.put("maxDate", format.format(tenMinutes));
                break;

            case "1h"://一小时前
                Date oneHourDate = new Date();
                c.setTime(oneHourDate);
                c.add(Calendar.HOUR, -1);
                Date h = c.getTime();
                String halfMonth = format.format(h);
                dateMap.put("minDate", halfMonth);
                dateMap.put("maxDate", format.format(oneHourDate));
                break;

            case "3h"://三小时前
                Date hDate = new Date();
                c.setTime(hDate);
                c.add(Calendar.HOUR, -3);
                Date m = c.getTime();
                String mon = format.format(m);
                dateMap.put("minDate", mon);
                dateMap.put("maxDate", format.format(hDate));
                break;

            case "today"://今天
                buidDateScope(dateMap, 0);
                break;

            case "yesterday"://昨天
                buidDateScope(dateMap, -1);
                break;

            case "beforeyesterday"://前天
                buidDateScope(dateMap, -2);
                break;
            case "cus"://自定义
                dateMap = detail;
                break;

        }
        return dateMap;
    }

    /**
     * @param dateMap 结果
     * @param day     0 当天开始结束时间、1明天开始结果时间 -1 前天开始结束时间
     * @return void
     * @Description //TODO 获取前后天的时间,返回、
     * @Date 15:34 2020/7/1
     **/
    private static void buidDateScope(Map<String, String> dateMap, int day) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar calendar = new GregorianCalendar();
        calendar.add(Calendar.DATE, day);
        //一天的开始时间 yyyy:MM:dd 00:00:00
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        Date dayStart = calendar.getTime();
        String startStr = format.format(dayStart);
        //一天的结束时间 yyyy:MM:dd 23:59:59
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        calendar.set(Calendar.MILLISECOND, 999);
        Date dayEnd = calendar.getTime();
        String endStr = format.format(dayEnd);
        dateMap.put("minDate", startStr);
        dateMap.put("maxDate", endStr);
    }
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
获取时间一年日期,可以使用Java中的LocalDate类和DateTimeFormatter类。以下是一种方法: 如果使用Java 8及以上版本,可以使用LocalDate类的minusYears()方法来获取日期一年日期。首先,获取日期并减去一年,然后将结果格式化为指定的日期字符串格式。 ```java import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class Main { public static void main(String\[\] args) { LocalDate currentDate = LocalDate.now(); // 获取日期 LocalDate previousYearDate = currentDate.minusYears(1); // 获取日期一年日期 String formattedDate = previousYearDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); // 将日期格式化为指定格式的字符串 System.out.println(formattedDate); // 输出一年日期 } } ``` 如果使用Java 7或更早的版本,可以使用Calendar类来进行日期计算。首先,获取日期并创建一个Calendar实例,然后将日期设置为当日期,并减去一年。最后,将结果格式化为指定的日期字符串格式。 ```java import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Main { public static void main(String\[\] args) { Calendar calendar = Calendar.getInstance(); // 获取Calendar实例 calendar.setTime(new Date()); // 设置日期为当日期 calendar.add(Calendar.YEAR, -1); // 减去一年 Date previousYearDate = calendar.getTime(); // 获取一年日期 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); // 创建日期格式化对象 String formattedDate = dateFormat.format(previousYearDate); // 将日期格式化为指定格式的字符串 System.out.println(formattedDate); // 输出一年日期 } } ``` 以上是两种常用的方法来获取Java中当时间一年日期。 #### 引用[.reference_title] - *1* *2* [Java 获取日期一年、月、日,指定日期几天,后几天](https://blog.csdn.net/m0_54790214/article/details/129280230)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Java 获取时间一周、一月、一年时间](https://blog.csdn.net/weixin_42411248/article/details/123030449)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冒险的梦想家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值