如何在Java中按日期推断信息

时间:2014-10-31 09:12:46

标签: java date calendar

我有这个格式的日期:2014-05-20 18:17:26.337

我尝试这样做:

Calendar c = Calendar.getInstance();
c.setTime(myDate); 
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
int dayOfMonth = c.get(Calendar.DAY_OF_MONTH);
int Month = c.get(Calendar.MONTH);
int year = c.get(Calendar.YEAR);

但信息有误......

我如何解决它?

3 个答案:

答案 0 :(得分:3)

这是预期值,请仔细阅读javadoc: http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html#MONTH

月份:

  

get和set的字段编号,表示月份。这是特定于日历的值。格列高利历和朱利安历的一年中的第一个月是1月,即0;最后一个取决于一年中的月数。

星期几:

  

public static final int DAY_OF_WEEK   获取和设置的字段编号,表示星期几。此字段的值为SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY和SATURDAY。

答案 1 :(得分:1)

您需要先阅读Java doc

  

get和set的字段编号,表示月份。这是一个   特定于日历的值。格里高利一年中的第一个月   朱利安的日历是1月1日,是0;最后取决于   一年中的月数。

因此,您将month作为4

int month = c.get(Calendar.MONTH);

答案 2 :(得分:1)

来自java doc:

  

块引用

     

int java.util.Calendar.MONTH = 2 [0x2]

     

get和set的字段编号,表示月份。这是一个   特定于日历的值。格里高利一年中的第一个月   和Julian的日历是 JANUARY是0; 最后取决于   一年中的月数。

     

另见:1月2月3月5月5月7月7月7月   十一月十一月十二月