从java.util.Date获取Year

Cha*_*hna 12 java deprecated cassandra java.util.date datastax

我在Cassandra列族中有一个日期列.当我使用datastax java API从此CF检索数据时,可以将此日期对象作为java.util.Date对象.

它有一个getYear()方法但不推荐使用.相应的javadoc说:

从JDK 1.1版开始,由Calendar.get(Calendar.YEAR) - 1900取代.

如何正确获取此日期对象的年,月,日属性?

Sem*_*ker 30

你能尝试一下吗?

      // create a calendar
      Calendar cal = Calendar.getInstance();
      cal.setTime(datetime);  //use java.util.Date object as arguement
      // get the value of all the calendar date fields.
      System.out.println("Calendar's Year: " + cal.get(Calendar.YEAR));
      System.out.println("Calendar's Month: " + cal.get(Calendar.MONTH));
      System.out.println("Calendar's Day: " + cal.get(Calendar.DATE));
Run Code Online (Sandbox Code Playgroud)

正如javadocs中提到的那样;

@Deprecated public int getYear()已过时.从JDK版本1.1开始,由Calendar.get(Calendar.YEAR) - 1900取代.返回一个值,该值是从包含或以此Date对象表示的时刻开始的年份减去1900的结果,如当地时区.返回:此日期表示的年份减去1900.

  • 你必须在获得年份之前设置日期:`cal.setTime(yourDateObjectFromCassandra);`然后你可以做`cal.get(Calendar.YEAR);` (2认同)
  • 因为月份从0开始.1月= 0,2月= 1等. (2认同)
  • @ChamilaWijayarathna [1月是0](http://stackoverflow.com/questions/344380/why-is-january-month-0-in-java-calendar) (2认同)