简体   繁体   English

Android Studio:Calendar.DAY_OF_WEEK 的错误

[英]Android Studio: Bug with Calendar.DAY_OF_WEEK

I didn't found my "bug" in another question, so I really need help.我没有在另一个问题中找到我的“错误”,所以我真的需要帮助。

In my app, I have this code:在我的应用程序中,我有以下代码:

    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.MONTH, Calendar.MONTH);
    calendar.set(Calendar.YEAR, Calendar.YEAR);
    calendar.set(Calendar.DAY_OF_MONTH, Calendar.DAY_OF_MONTH);

    calendar.set(Calendar.HOUR_OF_DAY, Calendar.HOUR);
    calendar.set(Calendar.MINUTE, Calendar.MINUTE);
    calendar.set(Calendar.SECOND, Calendar.SECOND);
    frase(calendar);

This code is inside onCreate and the code below is below onCreate();这段代码在onCreate里面,下面的代码在onCreate()下面;

     public void frase(Calendar calendar)
{
    int day = calendar.get(Calendar.DAY_OF_WEEK);

    switch (day) {
        case Calendar.MONDAY:textView.setText(getText(R.string.segunda));break;
        case Calendar.TUESDAY:textView.setText(getText(R.string.terca));break;
        case Calendar.WEDNESDAY:textView.setText(getText(R.string.quarta));break;
        case Calendar.THURSDAY:textView.setText(getText(R.string.quinta));break;
        case Calendar.FRIDAY:textView.setText(getText(R.string.sexta));break;
        case Calendar.SATURDAY:textView.setText(getText(R.string.sabado));break;
        case Calendar.SUNDAY:textView.setText(getText(R.string.domingo));break;
    }
}

When I run the app, my emulator always returns me the Saturday case but the emulator day of the week is wednesday.当我运行应用程序时,我的模拟器总是返回星期六的情况,但一周中的模拟器日期是星期三。

The second argument to Calendar.set() is the value you want to that particular field defined by the first argument. Calendar.set()的第二个参数是您希望由第一个参数定义的特定字段的值。 Now you're setting constant values ie field index numbers, which makes no sense.现在您正在设置常量值,即字段索引号,这是没有意义的。

Remove your set() calls altogether.完全删除您的set()调用。 Calendar.getInstance() already returns an instance that is initialized to current date and time. Calendar.getInstance()已经返回一个初始化为当前日期和时间的实例。

Get Date获取日期

public static String getDate() {
        Date myDate = new Date();
        String date = new SimpleDateFormat("yyyy-MM-dd").format(myDate);
       // new SimpleDateFormat("hh-mm-a").format(myDate);
        return date;
    }

Get day of week获取星期几

 public static int dayOfWeek(String date) {
        try {
            int day = 0;
            SimpleDateFormat simpleDateformat = new SimpleDateFormat("yyyy-MM-dd");
            Date now = simpleDateformat.parse(date);
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(now);
            day = calendar.get(Calendar.DAY_OF_WEEK) - 1;
            return day;
        } catch (Exception e) {
            return null;
        }
    }

Or simply call或者干脆打电话

getDay(new Date()); getDay(新日期());

public static String getDay(Date date){

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEEE");
    //System.out.println("DAY "+simpleDateFormat.format(date).toUpperCase());                       
    return simpleDateFormat.format(date).toUpperCase();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 日历。DAY_OF_WEEK不能正常工作-ANDROID - Calendar.DAY_OF_WEEK dosn't work fine - ANDROID Java Calendar.DAY_OF_WEEK 给出错误的一天 - Java Calendar.DAY_OF_WEEK gives wrong day 如何在Calendar.DAY_OF_WEEK设置几天 - How to set some days on Calendar.DAY_OF_WEEK Java 的 Calendar.DAY_OF_WEEK 返回不正确的值 - Java's Calendar.DAY_OF_WEEK returns incorrect value 使用 java.time.DayOfWeek 设置 Calendar.DAY_OF_WEEK - Set Calendar.DAY_OF_WEEK using java.time.DayOfWeek Java Calendar.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY),它会向后滚动,转发还是未知? - Java Calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY), will it roll backwards, forwards or unknown? Calendar.get(Calendar.DAY_OF_WEEK)是否受Calendar.getFirstDayOfWeek()影响? - Is Calendar.get(Calendar.DAY_OF_WEEK) impacted by Calendar.getFirstDayOfWeek()? Java 日历使用 Calendar.DAY_OF_WEEK 获取特定日期的第一个和最后一个日期 - Java Calendar using Calendar.DAY_OF_WEEK to get the first and the last dates for a particular date java 中的 Calendar.getInstance().get(Calendar.DAY_OF_WEEK) 和 Calander.DAY_OF_WEEK 有什么区别 - What's the difference between Calendar.getInstance().get(Calendar.DAY_OF_WEEK) and Calander.DAY_OF_WEEK in java 如何将“过去的一周”设置为Android Studio中的日历(Java.util)中的“下一周”? - How to set that 'past day of week' calculate as a 'next week of day' in calendar(Java.util) in Android Studio?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM