Je connais des formats de date tels que"yyyy-mm-dd"
-qui affiche la date au format 2011-02-26
"yyyy-MMM-dd"
- qui affiche la date au format 2011-FEB-26
à utiliser par exemple:
SimpleDateFormat formatter = new SimpleDateFormat(
"yyyy/MMM/dd ");
Je veux un format qui m'aiderait à afficher le jour de la semaine comme 2011-02-MON
Ou n'importe quoi. Je veux juste que le jour de la semaine soit affiché en caractères avec le mois et l'année. Pouvez-vous me parler d'un format comme celui-ci?
Cela devrait afficher 'Mardi':
new SimpleDateFormat("EEE").format(new Date());
Cela devrait afficher 'mardi':
new SimpleDateFormat("EEEE").format(new Date());
Cela devrait afficher 'T':
new SimpleDateFormat("EEEEE").format(new Date());
Donc, votre exemple spécifique serait:
new SimpleDateFormat("yyyy-MM-EEE").format(new Date());
Yep - 'E' fait le tour
http://download.Oracle.com/javase/6/docs/api/Java/text/SimpleDateFormat.html
Date date = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-E");
System.out.println(df.format(date));
SimpleDateFormat sdf=new SimpleDateFormat("EEE");
EEE signifie jour de la semaine, par exemple jeudi est affiché comme jeudi.
LocalDate.of( 2018 , Month.JANUARY , 23 )
.format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) )
L'approche moderne utilise les classes Java.time.
LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;
Notez comment nous spécifions un Locale
tel que Locale.CANADA_FRENCH
pour déterminer le langage humain utilisé pour traduire le nom du jour.
DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) ;
String output = ld.format( f ) ;
À propos, vous pouvez être intéressé par la norme ISO 8601 semaine schéma de numérotation: yyyy-Www-d
.
2018-W01-2
La semaine 1 a le premier jeudi de l'année civile. La semaine commence un lundi. Une année a 52 ou 53 semaines. Les derniers/premiers jours d'une année civile peuvent atterrir dans l'année basée la semaine suivante/précédente.
Le chiffre à la fin correspond au jour de la semaine, de 1 à 7 pour les lundi et dimanche.
Ajoutez la classe de bibliothèques ThreeTen-Extra à votre projet pour la classe YearWeek
.
Le cadre Java.time est intégré à Java 8 et versions ultérieures. Ces classes supplantent l'ancien problème (ancien) hérité classes date-heure telles que Java.util.Date
, Calendar
, & SimpleDateFormat
.
Le projet Joda-Time , maintenant en mode de maintenance , conseille la migration vers les classes Java.time .
Pour en savoir plus, consultez le Tutoriel Oracle . Et recherchez Stack Overflow pour de nombreux exemples et explications. La spécification est JSR 31 .
Où obtenir les classes Java.time?
Le projet ThreeTen-Extra étend Java.time avec des classes supplémentaires. Ce projet est un terrain d’essai pour d’éventuels ajouts à Java.time. Vous pouvez trouver ici quelques classes utiles telles que Interval
, YearWeek
, YearQuarter
, et plus .
Je sais que la question concerne l’obtention du jour de la semaine sous forme de chaîne (le nom abrégé, par exemple), mais pour quiconque recherche le jour numérique de la semaine (comme j’étais), vous pouvez utiliser la nouvelle chaîne de format "u", prise en charge. depuis Java 7. Par exemple:
new SimpleDateFormat("u").format(new Date());
renvoie l'index du jour de la semaine du jour, à savoir: 1 = lundi, 2 = mardi, ..., 7 = dimanche.