java cassandra deprecated datastax java.util.date

obtener año de java.util.Date



cassandra deprecated (4)

Tengo una columna de fecha en una familia de columnas de Cassandra. Cuando recupero datos de este CF utilizando la API de datastax java, este objeto de fecha se puede tomar como un objeto java.util.Date .

Tiene un método getYear() pero está en desuso. El javadoc correspondiente dice:

A partir de la versión 1.1 de JDK, reemplazado por Calendar.get (Calendar.YEAR) - 1900.

¿Cómo puedo obtener los atributos de año, mes, día de este objeto de fecha correctamente?


Para recuperar los campos de fecha y hora, puede usar este código:

DateFormat.getDateTimeInstance().getCalendar().get(DateFormat.MONTH_FIELD)

Simplemente reemplace MONTH_FIELD con una opción más como "DAY_OF_WEEK_FIELD" para recuperar el día de la semana (creo que "1" representa el lunes) o "MINUTE_FIELD" para el minuto actual, etc. :)


Una buena opción es usar el formato de fecha de la siguiente manera:

SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy"); Date date = sdf1.parse(datetime); String year = sdf2.format(date);


Podrías probar como tihs;

// 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));

Como se menciona en javadocs ;

@Deprecated public int getYear () Obsoleto. A partir de JDK versión 1.1, reemplazado por Calendar.get (Calendar.YEAR) - 1900. Devuelve un valor que es el resultado de restar 1900 del año que contiene o comienza con el instante en el tiempo representado por este objeto Date, como se interpreta en la zona horaria local. Devoluciones: el año representado por esta fecha, menos 1900.


usar el objeto LocalDate en java8

Date date = new Date(); LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); int year = localDate.getYear(); int month = localDate.getMonthValue(); int day = localDate.getDayOfMonth();