2011-04-27 73 views
7

我想查找日期为Java的日期,例如27-04-2011在Java中查找日期

我试图用这个,但它不工作:

Calendar cal = Calendar.getInstance(); 
int val = cal.get(Calendar.DAY_OF_WEEK); 

它给人的整数值,而不是字符串输出我想要的。我没有得到我想要的正确价值。例如,由于日期为28-02-2011,因此它应该为2,因为它给我的值为4,因为星期天是第一个星期。

回答

9

是的,你已经问过它每周的哪一天 - 而2月28日是Monday, day 2。请注意,在你给出的代码中,你实际上并不是设置的任何地方的日期 - 它只是使用当前的日期,这是一个星期三,这就是为什么你会得到4.如果你能展示你如何“重新设置日历到不同的日期(例如2月28日),我们可以找出为什么这不适合你。

如果您想将其格式化为文本,可以使用SimpleDateFormat和“E”说明符。例如(未测试):

SimpleDateFormat formatter = new SimpleDateFormat("EEE"); 
String text = formatter.format(cal.getTime()); 

我个人避免使用Calendar共虽然 - 使用Joda Time,这是一个远远优于日期和时间API。

+0

看看你给我在这里使用的SimpleDateFormat的一个例子,这将是对我非常有帮助。 – riyana 2011-04-27 06:21:21

+0

@riyana:我已经添加了一个示例,但我真的会*强烈*鼓励您使用Joda时间。 – 2011-04-27 06:23:49

+0

@JonSkeet:+1的答案,我正在寻找相同的。 – Zoombie 2013-02-07 05:49:33

1

请参阅DAY_OF_WEEK字段的JavaDoc。它指向7个常量SUNDAY..SATURDAY,显示如何解码cal.get(Calendary.DAY_OF_WEEK)的int返回值。您确定

Calendar cal = Calendar.getInstance(); 
cal.set(2011, 02, 28); 
cal.get(Calendar.DAY_OF_WEEK); 

为您返回错误的值吗?

+0

我可以向你保证,这是工作;) scala> import java.util。日历 斯卡拉> VAL CAL = Calendar.getInstance() 斯卡拉> cal.set(2011,02,28) 斯卡拉> cal.get(Calendar.DAY_OF_WEEK) RES1:INT = 2 – 2011-04-27 06:37:49

1

尝试以下:

Calendar cal=Calendar.getInstance(); 
    int val = cal.get(Calendar.DAY_OF_WEEK); 
    System.out.println(new DateFormatSymbols().getWeekdays()[val]); 

Calendar cal=Calendar.getInstance(); 
    String dayName = new DateFormatSymbols().getWeekdays()[cal 
      .get(Calendar.DAY_OF_WEEK)]; 
    System.out.println(dayName); 
1
Calendar cal=Calendar.getInstance(); 
    cal.set(2011, 2, 28); 
    int val = cal.get(Calendar.DAY_OF_WEEK); 
    System.out.println(val); 
3
Calendar cal=Calendar.getInstance(); 
System.out.println(new SimpleDateFormat("EEE").format(cal.getTime())); 

输出

Wed 

此外

+0

感谢很多:) – riyana 2011-04-28 05:26:25

+0

你受欢迎的 :) – 2011-04-28 05:35:10

3
String dayNames[] = new DateFormatSymbols().getWeekdays(); 
    Calendar date1 = Calendar.getInstance(); 
    System.out.println("Today is a " 
    + dayNames[date1.get(Calendar.DAY_OF_WEEK)]);