web-dev-qa-db-fra.com

Convertir une chaîne en date puis formater la date

Je suis en train de formater une chaîne à une date en utilisant le code

String start_dt = '2011-01-01';

DateFormat formatter = new SimpleDateFormat("YYYY-MM-DD"); 
Date date = (Date)formatter.parse(start_dt);

Mais comment convertir la date du format YYYY-MM-DD au format MM-DD-YYYY?

12
Mike

Utilisez le format SimpleDateFormat # (Date) :

String start_dt = "2011-01-01";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-DD"); 
Date date = (Date)formatter.parse(start_dt);
SimpleDateFormat newFormat = new SimpleDateFormat("MM-dd-yyyy");
String finalString = newFormat.format(date);
33
MByD
String start_dt = "2011-01-31";

DateFormat parser = new SimpleDateFormat("yyyy-MM-dd"); 
Date date = (Date) parser.parse(start_dt);

DateFormat formatter = new SimpleDateFormat("MM-dd-yyyy"); 
System.out.println(formatter.format(date));

Impressions: 31-01-2011

3
Bhesh Gurung

tl; dr

LocalDate.parse( "2011-01-01" )
         .format( DateTimeFormatter.ofPattern( "MM-dd-uuuu" ) ) 

Java.time

Les autres réponses sont maintenant obsolètes. Les anciennes classes de date-heure problématiques telles que Java.util.Date , Java.util.Calendar et Java.text.SimpleDateFormat sont maintenant héritées _, supplantées par les classes Java.time

ISO 8601

La chaîne de saisie 2011-01-01 est conforme aux formats standard ISO 8601 pour le texte date-heure. Les classes Java.time utilisent ces formats standard par défaut lors de l'analyse/génération de chaînes. Donc, pas besoin de spécifier un modèle de formatage.

LocalDate

La classe LocalDate représente une valeur de date uniquement sans heure et sans fuseau horaire.

LocalDate ld = LocalDate.parse( "2011-01-01" ) ;

Générez une chaîne au même format en appelant toString.

String output = ld.toString() ;

2011-01-01

DateTimeFormatter

Pour analyser/générer d'autres formats, utilisez une DateTimeFormatter.

DateTimeFormatter f = DateTimeFormatter.ofPattern( "MM-dd-uuuu" ) ;
String output = ld.format( f ) ;

01-01-2011


À propos de Java.time

Le cadre Java.time est intégré à Java 8 et versions ultérieures. Ces classes supplantent les anciennes classes gênantes héritées _ date-heure telles que Java.util.Date , Calendar _, & SimpleDateFormat .

Le projet Joda-Time , désormais en mode maintenance , conseille de migrer 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 310 .

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 y trouver des classes utiles telles que Interval _, YearWeek , YearQuarter _ et plus _.

1
Basil Bourque

 enter image description here

String myFormat= "yyyy-MM-dd";
String finalString = "";
try {
DateFormat formatter = new SimpleDateFormat("yyyy MMM dd");
Date date = (Date) formatter .parse("2015 Oct 09");
SimpleDateFormat newFormat = new SimpleDateFormat(myFormat);
finalString= newFormat .format(date );
newDate.setText(finalString);
} catch (Exception e) {

}

pour plus de références cliquez ici http://androiddhina.blogspot.in/2015/10/convert-string-to-date-format.html

1
Dhina k

Testé ce code

Java.text.DateFormat formatter = new Java.text.SimpleDateFormat("MM-dd-yyyy");
Java.util.Date newDate = new Java.util.Date();
System.out.println(formatter.format(newDate ));

http://download.Oracle.com/javase/1,5.0/docs/api/Java/text/SimpleDateFormat.html

1
r0ast3d
    String start_dt = "2011-01-01"; // Input String

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); // Existing Pattern
    Date getStartDt = formatter.parse(start_dt); //Returns Date Format according to existing pattern

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd-yyyy");// New Pattern
    String formattedDate = simpleDateFormat.format(getStartDt); // Format given String to new pattern

    System.out.println(formattedDate); //outputs: 01-01-2011
0
Dulith De Costa

En une ligne:

String date=new SimpleDateFormat("MM-dd-yyyy").format(new SimpleDateFormat("yyyy-MM-dd").parse("2011-01-01"));

Où:

String date=new SimpleDateFormat("FinalFormat").format(new SimpleDateFormat("InitialFormat").parse("StringDate"));
0
jechaviz