J'étudiais sur Date,
J'ai l'impression qu'il y a des parties que je n'ai pas bien comprises dans ces deux points, alors je vais les résumer.
En fait, il a été submergé car le champ de la classe Calendar n'était pas bien compris, et il semble que Java 8 ait une nouvelle API de date et qu'elle puisse être gérée un peu plus intuitivement, mais c'est aussi une classe Date primitive. J'ai senti qu'il valait mieux commencer à comprendre, alors j'ai essayé de dessiner tout en vérifiant diverses choses à ma manière.
__ Version utilisant la classe Calendar est également utile __
TenDaysDate.java
import java.text.SimpleDateFormat;
import java.util.Date;
public class TenDaysDate {
public static void main(String[] args) {
//Modifiez la valeur longue du type Date pour obtenir la date 10 jours plus tard
Date d = new Date(); //Obtenez la date et l'heure actuelles
long ts = System.currentTimeMillis(); //Obtenez l'époque actuelle en milliseconde
//Comparez la valeur de retour de la méthode getTime de type Date avec la valeur de currentTimeMillis
System.out.println("d.getTime:\t\t\t" + d.getTime()); // Date.valeur getTime
System.out.println("currentTimeMillis:\t" + ts); //valeur de currentTimeMillis
if(ts == d.getTime()) System.out.println("Ensemble"); //les valeurs longues correspondent
//Afficher les informations de date de type Date en spécifiant le format
SimpleDateFormat f = new SimpleDateFormat("aaaa année MM mois jj jour"); //Spécifiez le format d'affichage
System.out.println("La date d'aujourd'hui:\t" + f.format(d)); //Passer l'argument de type Date au type SimpleDateFormat
//Ajoutez 10 jours de millisecondes avec la méthode de type Date setTime et modifiez les informations de date 10 jours plus tard
d.setTime(d.getTime() + (long)(24 * 60 * 60 * 1000) * 10); // ()Est une milliseconde de la journée
System.out.println("Date 10 jours plus tard:\t" + f.format(d)); //Passer au type SimpleDateFormat comme argument de type Date
}
}
Résultat de sortie
d.getTime: 1602415769204
currentTimeMillis: 1602415769204
Ensemble
La date d'aujourd'hui:11 octobre 2020
Date 10 jours plus tard:21 octobre 2020
d.getTime(); //L'époque milliseconde est renvoyée
d.setTime(Epoque milliseconde); // Epoque millisecondeを引数に渡して日付情報をセットする
1 janvier 1970 00:00:00 Millimètres écoulés depuis UTC Aussi connu sous Unix Time La milliseconde pour un jour est «24 * 60 * 60 * 1000». Multipliez cela par 10 pendant 10 jours de millisecondes.
De plus, en définissant getTime () + 24 * 60 * 60 * 1000 * 10
, vous pouvez obtenir les informations de date 10 jours après la milliseconde à partir de l'heure actuelle.
Besoin de lancer un type long comme «(long) 24 * 60 * 60 * 1000» dans certains cas?
Si une année de jachère sort 10 ans plus tard ou quelque chose comme ça, même si la milliseconde un an plus tard est «24 * 60 * 60 * 1000 * 365 * 10», ce ne sera pas le même jour du même mois 10 ans plus tard. ..
Lors d'un calcul sur une longue période, vous devez l'ajouter au champ année, etc. C'est compliqué.
Recommended Posts