【问题标题】:How to get date of the first day of the current week in android [duplicate]如何在android中获取本周第一天的日期[重复]
【发布时间】:2015-10-24 14:13:27
【问题描述】:

嗨,我正在做一个项目,我需要以 yyyy-MM-dd 的格式获取一周中第一天的日期并在 TextView 中显示它,我尝试了 this 解决方案,但我对使用 @ 感到困惑987654323@ 和 Calendar 类,我尝试了下面的代码,但总是得到完整的日期字符串或错误的日期我的总体目的是获取一周第一天的日期任何编写执行此操作的代码或解释DateCalendar 类之间的区别我将不胜感激。 谢谢 这是代码

 int year, month, day;

    tvTest = (TextView) findViewById(R.id.tvTheoryStudies);

    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.HOUR_OF_DAY, 0);
    cal.set(Calendar.MINUTE, 0);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);


    year = cal.get(Calendar.YEAR);
    month = cal.get(Calendar.MONTH);
    day = cal.get(Calendar.DAY_OF_MONTH);
    String todayDate = new StringBuilder().append(year).append("-").append(month).append("-").append(day).toString();


    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    cal.set(Calendar.DAY_OF_WEEK, 1);
    Date date =new Date();

    try {
        date = sdf.parse(todayDate);
    }
    catch (Exception e){
        e.printStackTrace();
    }


    cal.setTime(date);
    date = cal.getTime();
    tvTest.setText(date.toString());

【问题讨论】:

    标签: java android date


    【解决方案1】:

    你让它变得比它需要的复杂得多。

    下面的代码会给你你想要的:

        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String outputDate = simpleDateFormat.format(calendar.getTime());
    

    Calendar.getInstance() 将日历对象设置为今天的日期。
    然后我将 DAY_OF_WEEK 设置为 MONDAY(请注意,Calendar.MONDAY 的常量值为 2,而不是 1。这可以在文档中看到)。
    我用正确的格式设置了一个 SimpleDateFormat,然后我在日历对象上使用 getTime() 来获取我传递给 SimpleDateFormat 的 Date 对象。

    Date 类和 Calendar 类的区别在于 Calendar 类用于对日期进行操作(加、减、比较等),而 Date 类仅用于保存日期和打印它到屏幕上供用户查看。

    因此,您应该始终在代码中包含一个 Calendar 对象,然后在向用户显示它时像上面那样转换它。 Calendar 类比 Date 类拥有更多的功能,而且通常更容易。

    【讨论】:

    • 非常感谢您的回答,这对我非常有用
    猜你喜欢
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 2014-08-26
    • 2011-04-14
    • 2019-04-12
    • 1970-01-01
    相关资源
    最近更新 更多