[英]Android Studio: Bug with Calendar.DAY_OF_WEEK
我没有在另一个问题中找到我的“错误”,所以我真的需要帮助。
在我的应用程序中,我有以下代码:
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);
这段代码在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;
}
}
当我运行应用程序时,我的模拟器总是返回星期六的情况,但一周中的模拟器日期是星期三。
Calendar.set()
的第二个参数是您希望由第一个参数定义的特定字段的值。 现在您正在设置常量值,即字段索引号,这是没有意义的。
完全删除您的set()
调用。 Calendar.getInstance()
已经返回一个初始化为当前日期和时间的实例。
获取日期
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;
}
获取星期几
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;
}
}
或者干脆打电话
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.