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.
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.
Bonjour,
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...
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); }
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,
- 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()) ;
- qu'on utilisera un long, plutôt qu'un Long, pour éviter de créer inutilement une instance.
En Java 8, on ferait :
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); }
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.
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")); }
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.
Salut,
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.
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)); } }
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.
Merci beaucoupje crois que c'est à peu près ce que je voulais (y)
^^
Partager