web-dev-qa-db-fra.com

Comment convertir la date du jour en chaîne en java?

Comment convertir la date actuelle en chaîne en Java?

105
user354299
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
204
Ian Purton
// 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

59
Itay Karo
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();
26
jasonmp85

Utilisez une implémentation de DateFormat ; par exemple. SimpleDateFormat .

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
17
Adamski

Plus rapide :

String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));
9
Johann Goulley

tl; dr

LocalDate.now()
         .toString() 

2017-01-23

Mieux vaut spécifier explicitement le fuseau horaire souhaité/attendu.

LocalDate.now( ZoneId.of( "America/Montreal" ) )
         .toString() 

Java.time

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.


À propos de Java.time

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 .

8
Basil Bourque

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

  1. Nous obtenons un objet Calendar et nous y cherchons l'heure. (vous devez vous demander que personne ne gagne du temps avec un calendrier, c'est pourquoi j'ai dit qu'il n'était pas parfait.Mais c'est un sujet complètement différent)
  2. Ensuite, nous voulons que la date soit au format texte simple et nous utilisons donc une classe d’utilitaire SimpleDateFormat qui nous aide à formater la date à partir de l’étape 1. J’ai utilisé yyyy, MM, jj en tant que paramètres du format. Paramètres de format de date pris en charge

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.

0

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;

0
user8483918