Bonjour, je souhaite convertir la date du jour dans ce format YYYY-MM-DD
. Cependant, il convertira la date au format String
, mais je veux le reconvertir au format Date
. Alors, est-ce que quelqu'un peut conseiller
C'est mon code jusqu'à présent
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String datestring = dateFormat.format(date);
essaye ça:
String DATE_FORMAT_NOW = "yyyy-MM-dd";
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
String stringDate = sdf.format(date );
try {
Date date2 = sdf.parse(stringDate);
} catch(ParseException e){
//Exception handling
} catch(Exception e){
//handle exception
}
Utilisez DateFormat#parse(String)
:
Date date = dateFormat.parse("2013-10-22");
Pour convertir la date en chaîne, vérifiez ce fil
Convertir Java.util.Date en chaîne
Et pour convertir une chaîne en date, essayez ceci,
import Java.text.ParseException;
import Java.text.SimpleDateFormat;
public class StringToDate
{
public static void main(String[] args) throws ParseException
{
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
String strDate = "14/03/2003 08:05:10";
System.out.println("Date - " + sdf.parse(strDate));
}
}
essayez cette fonction
public static Date StringToDate(String strDate) throws ModuleException {
Date dtReturn = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
try {
dtReturn = simpleDateFormat.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
return dtReturn;
}
Convertir la date en chaîne en utilisant cette fonction
public String convertDateToString(Date date, String format) {
String dateStr = null;
DateFormat df = new SimpleDateFormat(format);
try {
dateStr = df.format(date);
} catch (Exception ex) {
System.out.println(ex);
}
return dateStr;
}
De Convertir la date en chaîne en Java . Et convertir chaîne en date à nouveau
public Date convertStringToDate(String dateStr, String format) {
Date date = null;
DateFormat df = new SimpleDateFormat(format);
try {
date = df.parse(dateStr);
} catch (Exception ex) {
System.out.println(ex);
}
return date;
}
Comment convertir date en chaîne et dater à nouveau?
LocalDate.now().toString()
2017-01-23
…et…
LocalDate.parse( "2017-01-23" )
La Question utilise d'anciennes classes de date-heure problématiques associées aux versions les plus anciennes de Java. Ces classes sont maintenant héritées, supplantées par les classes Java.time intégrées à Java 8, Java 9 et versions ultérieures.
Déterminer la date du jour nécessite un fuseau horaire. Pour un moment donné, la date varie dans le monde entier par zone.
Si vous ne le spécifiez pas, le fuseau horaire par défaut de votre machine virtuelle Java est appliqué. Ce paramètre par défaut peut changer à tout moment pendant l'exécution et n'est donc pas fiable. Je vous suggère de toujours spécifier votre fuseau horaire souhaité/attendu.
ZoneId z = ZoneId.of( "America/Montreal" ) ;
LocalDate ld = LocalDate.now( z ) ;
Le format souhaité de AAAA-MM-JJ est conforme à la norme ISO 8601.
Il se trouve que cette norme est utilisée par défaut par les classes Java.time lors de l’analyse/génération de chaînes. Vous pouvez donc simplement appeler LocalDate::parse
et LocalDate::toString
sans spécifier de modèle de formatage.
String s = ld.toString() ;
Pour analyser:
LocalDate ld = LocalDate.parse( s ) ;
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 _.