21

我有一个日期,我需要知道星期几,所以我使用了一个 GregorianCalendar 对象,但我得到了一些不正确的日期。

GregorianCalendar calendar = new GregorianCalendar(year, month, day);
int i = calendar.get(Calendar.DAY_OF_WEEK);

我究竟做错了什么?

谢谢!

编辑解决方案:

mont--;
GregorianCalendar calendar = new GregorianCalendar(year, month, day);
int i = calendar.get(Calendar.DAY_OF_WEEK);

    if(i == 2){
        dayOfTheWeek = "Mon";           
    } else if (i==3){
        dayOfTheWeek = "Tue";
    } else if (i==4){
        dayOfTheWeek = "Wed";
    } else if (i==5){
        dayOfTheWeek = "Thu";
    } else if (i==6){
        dayOfTheWeek = "Fri";
    } else if (i==7){
        dayOfTheWeek = "Sat";
    } else if (i==1){
        dayOfTheWeek = "Sun";
    }
4

3 回答 3

14
TimeZone timezone = TimeZone.getDefault();
Calendar calendar = new GregorianCalendar(timezone);
calendar.set(year, month, day, hour, minute, second);

String monthName=calendar.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.getDefault());//Locale.US);
String dayName=calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.getDefault());//Locale.US);
于 2013-01-21T22:00:47.487 回答
3

乔达时间

我使用Joda-Time库进行所有与日期/时间相关的操作。Joda 会考虑您的语言环境并相应地获得结果:

import org.joda.time.DateTime;
DateTime date = new DateTime(year, month, day, 0, 0, 0);

或者

DateTime date = DateTime().now();

星期几(整数):

date.getDayOfWeek();

星期几(短字符串)使用toString()DateTimeFormat选项:

date.toString("EE");
于 2012-04-16T09:42:05.333 回答
0
于 2016-08-18T02:15:11.213 回答