12
votes

obtenir année de java.util.date

J'ai une colonne de date dans une famille de colonnes Cassandra. Lorsque je récupérerai les données de ce CF à l'aide de DataStax Java API, cet objet de date peut être pris sous forme d'un java.util.date objet.

Il a une méthode getyear () mais il est obsolète. Le Javadoc correspondant dit:

AS de JDK version 1.1, remplacée par calendar.get (calendrier.year) - 1900.

Comment puis-je obtenir l'année, le mois, les attributs de jour de cette date d'objet correctement?


2 commentaires

Si vous obtenez la valeur comme un java.util.date , quel fuseau horaire voulez-vous utiliser pour l'année? Une date est juste un point à temps.


Dupliqué possible de Obtenez une valeur entière de l'année en cours en Java


4 Réponses :


1
votes

Une bonne option consiste à utiliser le format de date comme suit:

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


1 commentaires

Pas besoin d'utiliser SimpleDateformat . Calendrier # Obtenir va bien et plus rapide.



30
votes

Pourriez-vous essayer comme 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));



0
votes

Pour récupérer les champs de date et heure, vous pouvez utiliser ce code:

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


0 commentaires

1
votes

Utilisez l'objet localDate dans 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();


0 commentaires