« Salut, Amigo. Je voudrais te parler d'un type intéressant appelé Date. Ce type stocke la date et l'heure, et peut également mesurer des intervalles de temps. »
« Ça m'a l'air intéressant. Continue, s'il te plaît. »
« Tout objet Date stocke une date sous une forme plutôt intéressante : le nombre de millisecondes écoulées depuis le 1er janvier 1970, GMT. »
« Ouah ! »
« Ouais. Ce nombre est si grand qu'il n'y a pas assez de place pour lui dans un int, et on doit donc le stocker dans un long. Mais c'est très pratique pour calculer la différence entre deux dates. Il te suffit de faire la soustraction pour trouver la différence avec une précision de l'ordre de la milliseconde. Cela résout également le problème des fuseaux horaires et de l'heure d'été. »
« La partie la plus intéressante est que chaque objet est initialisé avec l'heure actuelle à sa création. Pour connaître l'heure actuelle, il te suffit de créer un objet Date. »
« Et comment on l'utilise ? »
« Voici quelques exemples : »
public static void main(String[] args) throws Exception
{
Date today = new Date();
System.out.println("Current date: " + today);
}
public static void main(String[] args) throws Exception
{
Date currentTime = new Date(); // Get the current date and time
Thread.sleep(3000); // Wait 3 seconds (3000 milliseconds)
Date newTime = new Date(); // Get the new current time
long msDelay = newTime.getTime() - currentTime.getTime(); // Calculate the difference
System.out.println("Time difference is: " + msDelay + " in ms");
}
public static void main(String[] args) throws Exception
{
Date startTime = new Date();
long endTime = startTime.getTime() + 5000; // +5 seconds
Date endDate = new Date(endTime);
Thread.sleep(3000); // Wait 3 seconds
Date currentTime = new Date();
if(currentTime.after(endDate))// Check whether currentTime is after endDate
{
System.out.println("End time!");
}
}
public static void main(String[] args) throws Exception
{
Date currentTime = new Date();
int hours = currentTime.getHours();
int mins = currentTime.getMinutes();
int secs = currentTime.getSeconds();
System.out.println("Time since midnight " + hours + ":" + mins + ":" + secs);
}
public static void main(String[] args) throws Exception
{
Date yearStartTime = new Date();
yearStartTime.setHours(0);
yearStartTime.setMinutes(0);
yearStartTime.setSeconds(0);
yearStartTime.setDate(1); // First day of the month
yearStartTime.setMonth(0); // January (the months are indexed from 0 to 11)
Date currentTime = new Date();
long msTimeDifference = currentTime.getTime() - yearStartTime.getTime();
long msDay = 24 * 60 * 60 * 1000; // The number of milliseconds in 24 hours
int dayCount = (int) (msTimeDifference/msDay); // The number of full days
System.out.println("Days since the start of the year: " + dayCount);
}
« La méthode getTime()
renvoie le nombre de millisecondes stocké dans un objet Date. »
« La méthode after()
vérifie si la date sur laquelle nous avons appelé la méthode se situe après la date passée à la méthode. »
« Les méthodes getHours(), getMinutes(), getSeconds()
renvoient respectivement le nombre d'heures, de minutes et de secondes pour l'objet sur lequel elles sont appelées. »
« De plus, dans le dernier exemple, tu peux voir qu'il est possible de modifier la date et l'heure stockées dans un objet Date. Nous obtenons l'heure et la date, puis réinitialisons les heures, les minutes et les secondes à 0. Nous avons également réglé le mois sur janvier et le jour sur le 1er du mois. Ainsi, l'objet yearStartTime
stocke la date du 1er Janvier de l'année actuelle, à minuit. »
« Après cela, nous obtenons à nouveau la date (currentTime
), calculons la différence entre les deux dates en millisecondes, et stockons le résultat dans msTimeDifference
. »
« Ensuite, nous divisons msTimeDifference
par le nombre de millisecondes dans 24 heures pour obtenir le nombre de jours complets du début de l'année en cours jusqu'à aujourd'hui. »
« Ouah ! C'est trop cool ! »
GO TO FULL VERSION