web-dev-qa-db-fra.com

Existe-t-il un format de date pour afficher le jour de la semaine en Java?

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?

113
rogerstone

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());
276
Nathan Feger

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));
16
toolkit
SimpleDateFormat sdf=new SimpleDateFormat("EEE");

EEE signifie jour de la semaine, par exemple jeudi est affiché comme jeudi.

4
user2824143

Tu vois"

Voir la section sur Modèles de date et d'heure :

JavaDocs for SimpleDateFormat

3
DHall

tl; dr

LocalDate.of( 2018 , Month.JANUARY , 23 )
         .format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US )  )

Java.time

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 ) ;

ISO 8601

À 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.


À propos de Java.time

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 .

3
Basil Bourque

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.

0
Sal Borrelli