IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Obtenir la date du jour au format jour-mois-année, sans heure


Sujet :

Java

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Obtenir la date du jour au format jour-mois-année, sans heure
    Bonjour,

    Je suis débutante en programmation java et je voudrais savoir comment obtenir la date de l'ordinateur au format (jj-mm-aaaa), seulement la date, pas l'heure. Merci.

  2. #2
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Bonjour,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public String aujourdhui() {
           Long millis = System.currentTimeMillis();
           Date date = new Date(millis);
           return new SimpleDateFormat("dd-MM-yyyy").parse(date);
    }
    Je détaille, mais bien sûr tu peux le fait en une ligne... Si tu es sous Java 8, tu peux aussi passer par la nouvelle API java.time, mais je n'ai pas le courage, cherche sur Google...
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Il y'a une erreur dans ton code @Cafeinoman : c'est format(), pas parse() (qui permet de passer d'une chaîne de caractères à une Date). A noter,

    1. qu'on est pas obligé d'utiliser System.currentTimeMillis(), puisque l'usage du constructeur de Date sans paramètre dans le même résultat que new Date(System.currentTimeMillis()) ;
    2. qu'on utilisera un long, plutôt qu'un Long, pour éviter de créer inutilement une instance.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public String aujourdhui() {
           final Date date = new Date();
           return new SimpleDateFormat("dd-MM-yyyy").format(date);
    }
    En Java 8, on ferait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public String aujourdhui() {
         return LocalDate.now().format(DateTimeFormatter.ofPattern("dd-MM-yyyy"));
    }
    A noter, par ailleurs, que cette transformation en chaîne n'a d'utilité que pour afficher la date. On peut tout à fait manipuler le type Date sans considérer l'heure, mais ça peut obliger dans certain cas à forcer l'heure, les minutes, les secondes et les millisecondes à 0 (par exemple, si on doit faire des comparaisons). En Java 8, par contre, le type LocalDate est bien un type date sans heure.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Salut,

    Citation Envoyé par joel.drigo Voir le message
    A noter, par ailleurs, que cette transformation en chaîne n'a d'utilité que pour afficher la date. On peut tout à fait manipuler le type Date sans considérer l'heure, mais ça peut obliger dans certain cas à forcer l'heure, les minutes, les secondes et les millisecondes à 0 (par exemple, si on doit faire des comparaisons). En Java 8, par contre, le type LocalDate est bien un type date sans heure.
    Justement, cela marche mais je veux manipuler la date,. Au fait, j'utilise eclipse, mon but est de comparer la date de type "date" dans ma Base de Données à la date de mon ordinateur. Donc, le String ,on oublie . Pourquoi pas au juste la fonction qui retourne un String en Date.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Si tu récupères une Date depuis une base de données, en JDBC à priori, tu vas obtenir un java.sql.Date.

    Voici une classe utilitaire avec toutes les méthodes de conversion et comparaison entre java.sql.Date, java.util.Date et java.time.LocalDate (y compris java.util.Date avec HMS to java.util.Date sans HMS donc comparable à une date sql sans heure. Avec les exemples pour obtenir la date du jour, dans les trois types.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    public class DateUtils {
     
    	public static Date toSQLDate(LocalDate date) {
    		return Date.valueOf(date);
    	}
     
    	public static Date toSQLDate(java.util.Date date) {
    		if (date instanceof Date ) {
    			return (Date) date;
    		}
    		return new java.sql.Date(toDate(date).getTime());
    	}
     
    	public static Date toSQLDate(Date date) {
    		return date;
    	}
     
    	///
     
    	public static java.util.Date toDate(LocalDate date) {
    		Instant instant = date.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
    		return Date.from(instant);
    	}
     
    	private static final int[] HMS_FIELDS = {Calendar.HOUR_OF_DAY, Calendar.MINUTE, Calendar.SECOND, Calendar.MILLISECOND};
    	public static java.util.Date toDate(Date date) {
    		if ( date instanceof java.util.Date ) {
    			return toDate((java.util.Date)date);
    		}
    		return date;
    	}
     
    	public static java.util.Date toDate(java.util.Date date) {
    		final boolean sql;
    		if ( date instanceof Date ) {
    			sql=true;
    		}
    		else {
    			sql=false;
    		}
    		Calendar cal = Calendar.getInstance();
    		cal.setTime(date);
    		for(int field : HMS_FIELDS) {
    			cal.set(field, 0);
    		}
    		return sql?new java.sql.Date(cal.getTimeInMillis()):cal.getTime(); // supprime h,m,s
    	}
     
    	///
     
    	public static LocalDate toLocalDate(java.util.Date date) {
    		Instant instant = Instant.ofEpochMilli(date.getTime());
    		return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()).toLocalDate();
    	}
     
    	public static LocalDate toLocalDate(java.sql.Date date) {
    		return toLocalDate(toDate(date));
    	}
     
    	public static LocalDate toLocalDate(LocalDate date) {
    		return date;
    	}
     
    	///
     
    	public static int compare(Date date1, Date date2) {
    		return date1.compareTo(date2);
    	}
     
    	public static int compare(Date date1, LocalDate date2) {
    		return date1.compareTo(toSQLDate(date2));
    	}
     
    	public static int compare(Date date1, java.util.Date date2) {
    		return date1.compareTo(toSQLDate(date2));
    	}
     
    	///
     
    	public static int compare(LocalDate date1, Date date2) {
    		return -compare(date2, date1);
    	}
     
    	public static int compare(LocalDate date1, LocalDate date2) {
    		return date1.compareTo(date2);
    	}
     
    	public static int compare(LocalDate date1, java.util.Date date2) {
    		return -compare(date2, date1);
    	}
     
    	///
     
    	public static int compare(java.util.Date date1, Date date2) {
    		return -compare(date2, date1);
    	}
     
    	public static int compare(java.util.Date date1, LocalDate date2) {
    		return compare(date1, toSQLDate(date2));
    	}
     
    	public static int compare(java.util.Date date1, java.util.Date date2) {
    		return toSQLDate(date1).compareTo(toSQLDate(date2));
    	}
     
    	///
     
    	public static void main(String[] args) {
    		System.out.println("SQLDate: " + toSQLDate(LocalDate.now()));
    		System.out.println("Date: " + toDate(LocalDate.now()));
    		System.out.println("SQLDate: " + toSQLDate(new java.util.Date()));
    		System.out.println("LocalDate: " + toLocalDate(new java.util.Date()));
     
    		Date sqlNow = Date.valueOf(LocalDate.now()); // Java 8
    		//Date sqlNow = toSQLDate(new java.util.Date()); // Java 7
    		System.out.println("SQL now: " + sqlNow);
    		java.util.Date dateNow = toDate(new java.util.Date());
    		System.out.println("Date now: " + dateNow);
    		LocalDate now = LocalDate.now();
    		System.out.println("LocalDate now: " + now);
    		System.out.println("SQL = date: " + (compare(sqlNow,dateNow)==0));
    		System.out.println("SQL = LocalDate : " + (compare(sqlNow,now)==0));
    		System.out.println("LocalDate = date: " + (compare(now,dateNow)==0));
    	}
     
    }

    Citation Envoyé par klx234 Voir le message
    Pourquoi pas au juste la fonction qui retourne un String en Date.
    Je ne comprends pas cette phrase.


    PS.Le fait que tu sois sous Eclipse, NetBeans, Intellij, Kawa, NotePad++ ou même VIM n'a pas d'importance.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup je crois que c'est à peu près ce que je voulais (y) ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/01/2010, 10h47
  2. SQL:Obtenir la date du 3ème dimanche de chaque mois
    Par twixi dans le forum Langage SQL
    Réponses: 6
    Dernier message: 10/04/2009, 10h38
  3. [VBA-E]Ajouter jours ouvrés -> NB.Jours.Ouvres, Serie.Jours.Ouvres
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/05/2007, 09h36
  4. Date Du jour au format 00/00/0000
    Par Meunier dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 05/09/2006, 23h05
  5. [C#]comment obtenir la date du jour?
    Par bakonu dans le forum C#
    Réponses: 2
    Dernier message: 03/11/2005, 11h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo