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效果一样...