Comment convertir la date actuelle en chaîne en Java?
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
// GET DATE & TIME IN ANY FORMAT
import Java.util.Calendar;
import Java.text.SimpleDateFormat;
public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";
public static String now() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
return sdf.format(cal.getTime());
}
Tiré de ici
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();
Utilisez une implémentation de DateFormat
; par exemple. SimpleDateFormat
.
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
Plus rapide :
String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));
LocalDate.now()
.toString()
2017-01-23
Mieux vaut spécifier explicitement le fuseau horaire souhaité/attendu.
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.toString()
La méthode moderne à partir de Java 8 et versions ultérieures) consiste à utiliser le framework Java.time .
Spécifiez le fuseau horaire, car la date varie à tout moment dans le monde.
ZoneId zoneId = ZoneId.of( "America/Montreal" ) ; // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now( zoneId ) ;
String output = today.toString() ;
2017-01-23
Par défaut, vous obtenez une chaîne au format standard ISO 8601 .
Pour les autres formats, utilisez le Java.time.format.DateTimeFormatter
classe.
Le cadre Java.time est intégré à Java 8 et versions ultérieures. Ces classes supplantent l'ancien problème - legacy classes date-heure telles que Java.util.Date
, Calendar
, & SimpleDateFormat
.
Le projet Joda-Time , actuellement en mode de maintenance , conseille de migrer vers le Java.time = cours.
Pour en savoir plus, consultez le Oracle Tutorial . Et recherchez Stack Overflow pour de nombreux exemples et explications. La spécification est JSR 31 .
Vous pouvez échanger des objets Java.time directement avec votre base de données. Utilisez un pilote JDBC compatible avec JDBC 4.2 ou une version ultérieure. Pas besoin de chaînes, pas besoin de Java.sql.*
Des classes.
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 .
La plupart des réponses sont/étaient valides. La nouvelle Java pour le traitement de la date garantit que certaines ambiguïtés antérieures dans le traitement de la date Java sont réduites.
Vous obtiendrez un message obsolète pour des appels similaires.
new Date() // deprecated
Lors de l'appel ci-dessus, le développeur avait supposé qu'un nouvel objet Date donnerait l'objet Date avec l'horodatage actuel. Ce comportement n'est pas cohérent entre les autres classes Java API.
La nouvelle façon de faire consiste à utiliser l'instance Calendar .
new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()
Ici aussi, la convention de nommage n’est pas parfaite mais elle est très organisée. Pour une personne comme moi qui a du mal à agresser mais qui n'oublie jamais quelque chose si cela semble/semble logique, c'est une bonne approche.
C'est plus synonyme de vie réelle
Une autre façon de faire est d'utiliser l'API de temps Joda
new DateTime().toString("yyyy-MM-dd")
ou le plus évident
new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")
les deux vont retourner le même résultat.
Pour le temps AAAA-MM-JJ
String time = new DateTime( yourData ).toString("yyyy-MM-dd");
Et la bibliothèque de DateTime est:
importer org.joda.time.DateTime;