我有这个简单的代码:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse("2011-10-29");
calendar.setTime(date);
Log.d("Debug","Day of the week = "+(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY));
10月29日是星期六,为什么我会弄错?
答案 0 :(得分:5)
这是一个如何发生这种情况的例子......
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = format.parse("2011-10-29");
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
calendar.setTime(date);
System.out.println("Day of the week = "
+ (calendar.get(Calendar.DAY_OF_WEEK)));
System.out.println("Saturday? "
+ (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY));
try {
date = format.parse("2011-10-29");
} catch (ParseException e) {
e.printStackTrace();
}
calendar = Calendar.getInstance(TimeZone.getTimeZone("PST"));
calendar.setTime(date);
System.out.println("Day of the week = "
+ (calendar.get(Calendar.DAY_OF_WEEK)));
System.out.println("Saturday? "
+ (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY));
输出
Day of the week = 7
Saturday? true
Day of the week = 6
Saturday? false
所以是的,根据您所在的时区,它将会是或不会是星期六。
答案 1 :(得分:0)
使用以下代码获取:
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse("2011-10-29");
Calendar cal = GregorianCalendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY);
}
catch(Exception e) {
e.printStackTrace();
}
可能是区域设置?