Un mémo personnel lorsque vous souhaitez effacer la partie horaire des données de date et d'heure acquises par Agenda.
calenderObj.clear(Calendar.HOUR_OF_DAY);
calenderObj.clear(Calendar.HOUR);
calenderObj.clear(Calendar.MINUTE);
calenderObj.clear(Calendar.SECOND);
calenderObj.clear(Calendar.MILLISECOND);
Écrivez un programme et vérifiez-le.
import java.util.Calendar;
public class CalendarClear {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
sysout(calendar);
calendar.clear(Calendar.HOUR);
calendar.clear(Calendar.MINUTE);
calendar.clear(Calendar.SECOND);
calendar.clear(Calendar.MILLISECOND);
sysout(calendar);
calendar.clear(Calendar.HOUR_OF_DAY);
sysout(calendar);
}
private static final void sysout(Calendar calc) {
System.out.println("/--------------------");
System.out.println("YEAR:" + calc.get(Calendar.YEAR));
System.out.println("MONTH:" + calc.get(Calendar.MONTH));
System.out.println("DATE:" + calc.get(Calendar.DATE));
System.out.println("HOUR_OF_DAY:" + calc.get(Calendar.HOUR_OF_DAY));
System.out.println("HOUR:" + calc.get(Calendar.HOUR));
System.out.println("MINUTE:" + calc.get(Calendar.MINUTE));
System.out.println("SECOND:" + calc.get(Calendar.SECOND));
System.out.println("MILLISECOND:" + calc.get(Calendar.MILLISECOND));
}
}
Le résultat est le suivant.
/--------------------
YEAR:2017
MONTH:4
DATE:22
HOUR_OF_DAY:17
HOUR:5
MINUTE:25
SECOND:35
MILLISECOND:527
/--------------------
YEAR:2017
MONTH:4
DATE:22
HOUR_OF_DAY:17
HOUR:5
MINUTE:0
SECOND:0
MILLISECOND:0
/--------------------
YEAR:2017
MONTH:4
DATE:22
HOUR_OF_DAY:17
HOUR:5
MINUTE:0
SECOND:0
MILLISECOND:0
Les valeurs de HOUR_OF_DAY et HOUR ne sont pas effacées. C'est la bonne description.
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
sysout(calendar);
calendar.clear(Calendar.MINUTE);
calendar.clear(Calendar.SECOND);
calendar.clear(Calendar.MILLISECOND);
//Pour effacer la partie temporelle, vous devez la mettre en set.
calendar.set(Calendar.HOUR_OF_DAY, 0);
sysout(calendar);
calendar.clear();
sysout(calendar);
}
Cela est clairement indiqué dans JavaDoc. Calendar (Java Platform SE 7 )
Les champs HOUR_OF_DAY, HOUR et AM_PM sont traités séparément et les règles de résolution temporelle s'appliquent. La suppression de l'un des champs> ne réinitialise pas les «heures» de ce calendrier. Utilisez set (Calendar.HOUR_OF_DAY, 0) pour réinitialiser la valeur "heure".
Résultat du traitement.
/--------------------
YEAR:2017
MONTH:4
DATE:22
HOUR_OF_DAY:17
HOUR:5
MINUTE:27
SECOND:12
MILLISECOND:718
/--------------------
YEAR:2017
MONTH:4
DATE:22
HOUR_OF_DAY:0
HOUR:0
MINUTE:0
SECOND:0
MILLISECOND:0
prime
calendar.clear();
Quand tu fais
/--------------------
YEAR:1970
MONTH:0
DATE:1
HOUR_OF_DAY:0
HOUR:0
MINUTE:0
SECOND:0
MILLISECOND:0
Tous les éléments sont effacés.
Calendar (Java Platform SE 7 )
Définissez tous les champs de calendrier et les valeurs d'heure (en millisecondes de décalage par rapport à la période d'origine) pour ce calendrier sur indéfini.