【Java】工作中编写的一个小工具类,获取当天日期计算当天所在周的开始时间和结束时间。

一个很好理解的工具类,还没进行过优化,就是提供一个思路,话不多说先贴代码吧。

import java.text.SimpleDateFormat;
import java.util.*;

public class DateToWeek {
    public static void main(String[] args) {
        //用来Date转String
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //用来String转Date,因为String格式原因所以分开写
        SimpleDateFormat sf = new SimpleDateFormat("EEE MMM d HH:mm:ss Z yyyy", Locale.UK);
        Date currentDate = new Date();
        List<Date> days = dateToWeek(currentDate);
        //System.out.println("今天的日期:"+sdf.format(currentDate));
        for(Date dd:days){
            System.out.println(dd);
        }
        //这里取出开始时间与结束时间
        String sdate = days.subList(0,1).toString();
        String edate = days.subList(6,7).toString();
        //做一下字符串切割,因为取出的结果被中括号包括着我们将两头的[]切掉
        sdate = sdate.substring(1,sdate.length()-1);
        edate = edate.substring(1,edate.length()-1);
        //将取出的开始时间与结束时间转成我们要的String格式
        try{
            Date startTimeDate = sf.parse(sdate);
            String startTimeString = sdf.format(startTimeDate);
            Date endTimeDate = sf.parse(edate);
            String endTimeString = sdf.format(endTimeDate);
            System.out.println("今天是:"+sdf.format(currentDate));
            System.out.println("本周的开始时间是:"+startTimeString+","+"本周的结束时间是:"+endTimeString);
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    @SuppressWarnings("deprecation")
    public static List<Date> dateToWeek(Date mdate) {
        int b = mdate.getDay();
        Date fdate;
        List<Date> list = new ArrayList<Date>();
        Long fTime = mdate.getTime() - b * 24 * 3600000;
        for (int i = 1; i <= 7; i++) {
            fdate = new Date();
            fdate.setTime(fTime + (i * 24 * 3600000));
            list.add(i - 1, fdate);
        }
        return list;
    }
}

其中写了两个时间格式转化格式,为了转换两种时间格式,想要Date类型的结果就不用写转String那段了。

运行结果:

才学疏浅,代码可能写得有点烂,还望大佬们多多指点,共同学习。

By -- 2021--08--23--

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值