日期,获取日期对应的一周的周一/周日

 /**
     * 当前时间所在一周的周一和周日时间,指定时间格式,默认格式:yyyy-MM-dd
     * @param
     * @return
     */
    public static Map<String, Date> getWeekDate(String source,String patternString) {
        Assert.notNull(source,"source must not be null");
        if(StringUtils.isEmpty(patternString)){
            patternString = CommonUtil.patternString;
        }
        Date sourceDate = CommonUtil.parseDateByString(source,patternString);
        Instant instant = sourceDate.toInstant();
        ZoneId zone = ZoneId.systemDefault();
        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant,zone);
        LocalDate from = localDateTime.toLocalDate();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(patternString);
        from.format(formatter);
        //指定日期星期数
        java.time.DayOfWeek date =from.getDayOfWeek();
        //星期一
        LocalDate day2 =from.with(TemporalAdjusters.previous(java.time.DayOfWeek.SUNDAY)).plusDays(1);
        //星期天
        LocalDate day3=from.with(TemporalAdjusters.next(java.time.DayOfWeek.MONDAY)).minusDays(1);
        Map<String, Date> map = new ConcurrentHashMap<>(3);
        map.put(MONDAY_STRING,localDateToDate(day2));
        map.put(SUNDAY_STRING,localDateToDate(day3));
        return map;
    }


    /**
     * localDate 转换为 date
     * @param localDate
     * @return
     */
    private static Date localDateToDate(LocalDate localDate){
        Assert.notNull(localDate,"localDate must not be null");
        ZoneId zoneId = ZoneId.systemDefault();
        ZonedDateTime zdt = localDate.atStartOfDay(zoneId);
        Date date = Date.from(zdt.toInstant());
        return date;
    }


    /**
     * date转换为指定格式的String
     * @param date
     * @param patternString
     * @return
     */
    public static final String dateToString(Date date,String patternString){
        if(!Optional.ofNullable(date).isPresent()){
            return null;
        }
        patternString = StringUtils.isEmpty(patternString) ? CommonUtil.patternString:patternString;
        SimpleDateFormat format = new SimpleDateFormat(patternString);
        String var = format.format(date);
        return var;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值