Maîtrisez le Timestamp en Java pour gérer les dates et heures

Dans cet article, nous allons explorer comment manipuler les timestamps avec la programmation en Java. Les timestamps sont fréquemment utilisés pour stocker et manipuler des informations sur les dates et les heures dans des applications.

Qu’est-ce qu’un timestamp ?

Un timestamp est une valeur qui représente un instant spécifique dans le temps. Il s’agit généralement du nombre de millisecondes écoulées depuis le début de l’époque Unix (1er janvier 1970 à minuit UTC). Les timestamps peuvent être utilisés pour mesurer le temps écoulé entre deux événements ou pour représenter la date et l’heure d’un événement particulier.

Comment créer un objet Timestamp en Java ?

La classe java.util.Date

Pour travailler avec des timestamps en Java, il existe plusieurs classes de date disponibles. La plus courante est la classe java.util.Date. Pour convertir cette classe de base en timestamp, on peut utiliser la méthode getTime().


Date currentDate = new Date();
long timestamp = currentDate.getTime();
System.out.println("Timestamp actuel : " + timestamp);

Cet exemple crée un objet Date représentant la date et l’heure actuelles, puis appelle la méthode getTime() pour obtenir le timestamp correspondant.

Le wrapper jdbc API

Une autre approche consiste à exploiter directement les capacités JDBC (Java Database Connectivity) API. Cette API inclut la classe java.util.Timestamp pour représenter une date et l’heure avec précision.


Timestamp timestamp = new Timestamp(System.currentTimeMillis());
System.out.println("Current Timestamp : " + timestamp);

Cet exemple crée un objet Timestamp à partir du nombre de millisecondes écoulées depuis le début de l’époque Unix, en utilisant la méthode System.currentTimeMillis().

Conversion entre Date et Timestamp

Il est fréquent de devoir convertir entre les objets Date et Timestamp lorsque vous travaillez avec des bases de données ou d’autres systèmes qui requièrent différents formats de date. Voici comment effectuer ces conversions :

Convertir une Date en Timestamp

Pour convertir un objet Date en Timestamp, utilisez simplement le constructeur de la classe Timestamp qui prend en argument un long représentant le temps en millisecondes :


Date date = new Date();
Timestamp timestamp = new Timestamp(date.getTime());

Convertir un Timestamp en Date

Pour convertir un objet Timestamp en Date, il suffit simplement d’utiliser la méthode timestamp.valueof() :


public static void main(String[] args) {
    String strTime = "2021-11-30 14 :30 :00";
    Timestamp timestamp = Timestamp.valueOf(strTime);
    System.out.println("Timestamp converti en Date : " + timestamp);
}

Formater les timestamps avec SimpleDateFormat

Lorsque vous travaillez avec des timestamps, il peut être utile de les afficher dans un format spécifique. La classe SimpleDateFormat permet de créer des chaînes de caractères formatées à partir de dates ou de timestamps.


import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
  public static void main(String[] args) {
    // Create a Date object
    Date currentDate = new Date();

    //Create instance of SimpleDateFormat in desired format,
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH :mm :ss");

    // Format the current date
    String formattedDate = sdf.format(currentDate);

    System.out.println("Current timestamp in formatted string : " + formattedDate);
  }
}

Manipuler les timestamps en Java

Ajouter ou soustraire du temps à un Timestamp

Pour ajouter ou soustraire une certaine quantité de temps à un objet Timestamp, convertissez-le d’abord en millisecondes, effectuez l’opération arithmétique désirée et créez ensuite un nouvel objet Timestamp à partir du résultat :


public static void main(String[] args) {
    Timestamp originalTimestamp = new Timestamp(System.currentTimeMillis());
    long millisecondsToAdd = 3600 * 1000; // Add 1 hour

    long newMillisecondsTimeValue = originalTimestamp.getTime() + millisecondsToAdd;

    Timestamp newTimestamp = new Timestamp(newMillisecondsTimeValue);

    System.out.println("New Timestamp : " + newTimestamp);
}

Comparer deux Timestamps

Pour comparer deux objets Timestamp entre eux, utilisez les méthodes before(), after() et equals(). Ces méthodes renverront respectivement true si l’objet Timestamp appelant est antérieur, postérieur ou égal à l’objet Timestamp passé en argument.


public static void main(String[] args) {
    Timestamp timestamp1 = new Timestamp(System.currentTimeMillis() - 3600 * 1000); // 1 hour ago
    Timestamp timestamp2 = new Timestamp(System.currentTimeMillis());

    boolean isTimestamp1BeforeTimestamp2 = timestamp1.before(timestamp2);
    boolean isTimestamp1AfterTimestamp2 = timestamp1.after(timestamp2);
    boolean areTimestampsEqual = timestamp1.equals(timestamp2);

    System.out.println("Is the first timestamp before the second one ? " + isTimestamp1BeforeTimestamp2);
    System.out.println("hIs the first timestamp after the second one ? " + isTimestamp1AfterTimestamp2);
    System.out.println("Are timestamps equal ? " + areTimestampsEqual);
}

Résumé

Dans cet article, nous avons appris comment créer des objets Timestamp en utilisant la classe java.util.Date et la classe jdbc API. Nous avons également vu comment convertir entre les objets Date et Timestamp, formater les timestamps avec SimpleDateFormat, et manipuler les objets Timestamp pour effectuer des opérations telles que l’ajout, la soustraction et la comparaison de temps. Utiliser ces techniques vous permettra de gérer efficacement les dates et heures dans vos applications Java.

Retour en haut