如何将指定的日期转成星期?

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");

Date date = null;

String tempdate = "2009-08-24";
date = dateFormat.parse(tempdate);

Calendar cd = Calendar.getInstance();

cd.setTime(date);

int mydate = cd.get(Calendar.DAY_OF_WEEK); //获取指定日期转换成星期几
String showDate = "";

switch(mydate){

case 1:

showDate = "日";

break;

case 2:

showDate = "一";

break;

case 3:

showDate = "二";

break;

case 4:

showDate = "三";

break;

case 5:

showDate = "四";

break;

case 6:

showDate = "五";

break;

default:

showDate = "六";

break;

}

我代码这样写的,不晓得那出问题了。日期不管怎么变,都是星期日。。。

模式匹配的问题得注意呢

SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。

SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 来新的创建日期-时间格式化程序。每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式化程序。可以根据需要使用 applyPattern 方法来修改格式模式。有关使用这些方法的更多信息,请参阅 DateFormat。

日期和时间模式
日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在分析时与输入字符串进行匹配。

那你变换日期时,每次打印出mydate 看一下。。。

int mydate = cd.get(Calendar.DAY_OF_WEEK);

这个错了,Calendar.DAY_OF_WEEK是一周有几天,必然是7

不好意思,记错了.

你这段代码我刚测试了,是没问题的.
8.24是周一

[quote] SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");

Date date = null;

String tempdate = "2009-08-24";
date = dateFormat.parse(tempdate); [/quote]

代码改为:

[code="java"]SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

Date date = null;

String tempdate = "2009-08-24";
date = dateFormat.parse(tempdate); [/code]

[color=red][size=medium]你指定的格式是yyyyMMdd,而你输入的是2009-08-24,当然不对了。[/size][/color]

应该是这样
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

奇怪..虽然它格式这点我看到了,但是我本地测试的时候yyyy-MM-dd和yyyyMMdd效果一样...