Comment obtenir la date/heure actuelle en Java

Quelle est la meilleure façon d'obtenir la date/heure actuelle en Java?

549
demandé sur Ripon Al Wasim 2011-03-03 04:48:09

24 réponses

cela dépend de quelle forme de date / heure vous voulez:

  • si vous voulez la date / heure comme une seule valeur numérique, alors System.currentTimeMillis() vous donne que, exprimé en nombre de millisecondes après L'époque UNIX (comme un Java long ). Cette valeur est un delta à partir d'un point UTC et elle est indépendante du fuseau horaire local ... en supposant que l'horloge du système a été réglée correctement.

  • si vous voulez la date / heure sous une forme qui vous permet d'accéder aux composants (Année, Mois, etc) numériquement, vous pouvez utiliser l'un des suivants:

    • new Date() vous donne un objet Date initialisé avec la date / heure courante. Le problème est que les méthodes de L'API Date sont pour la plupart imparfaites ... et obsolètes.

    • Calendar.getInstance() vous donne un Calendar objet initialisé avec la date / heure courante, en utilisant la valeur par défaut Locale et TimeZone . D'autres surcharges vous permettent d'utiliser un spécifique Locale et/ou TimeZone . Le calendrier fonctionne ... mais les API sont encore encombrantes.

    • new org.joda.time.DateTime() vous donne un Joda-time objet initialisé avec la date / heure courante, en utilisant le fuseau horaire par défaut et la chronologie. Il y a beaucoup d'autres Joda alternatives ... trop décrire ici. (Toutefois, certaines personnes signalent que Joda time a des problèmes de rendement.; par exemple, Jodatime de LocalDateTime est lente lors de la première fois .)

    • dans Java 8, en appelant LocalDateTime.now() et ZonedDateTime.now() vous donnera des représentations 1 pour la date / heure actuelle.

avant Java 8, la plupart des gens qui est au courant de ces choses a recommandé Joda-time comme ayant (de loin) les meilleurs API Java pour faire des choses impliquant des calculs de point de temps et de durée. Avec Java 8, ce n'est plus vrai. Cependant, si vous utilisez déjà Joda time dans votre base de données, il n'y a pas de raison forte de migrer 2 .


1 - notez que LocalDateTime n'inclut pas de fuseau horaire. Comme le dit le javadoc: "Il ne peut pas représenter un instant sur la ligne sans informations supplémentaires, telles que le décalage de durée ou d'horaire."

2-votre code ne se brisera pas si vous ne le faites pas, et vous n'obtiendrez pas d'avertissements de dépréciation. Bien sûr, la base de données Joda cessera probablement de recevoir des mises à jour, mais il est peu probable d'en avoir besoin. Aucune mise à jour signifie stabilité et c'est une bonne chose.

544
répondu Stephen C 2018-05-24 23:26:55

si vous avez juste besoin de sortir un horodatage dans le format YYYY.MMM.DD-HH.MMM.SS (cas très fréquent) alors voici la façon de le faire:

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
345
répondu Liebster Kamerad 2015-10-20 09:13:56

si vous voulez la date courante comme chaîne de caractères, essayez ceci:

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date));

ou

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));

http://www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/

92
répondu duggu 2014-07-09 18:32:57

Dans Java 8 c'est:

LocalDateTime.now()

et dans le cas où vous avez besoin d'informations sur le fuseau horaire:

ZonedDateTime.now()

et dans le cas où vous voulez imprimer chaîne formatée Fantaisie:

System.out.println(ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME))
53
répondu Oleg Mikheev 2014-10-06 22:30:59

il suffit de créer un objet Date...

Date date = new Date();
40
répondu Amir Afghani 2011-03-03 01:52:27
    // 2015/09/27 15:07:53
    System.out.println( new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime()) );

    // 15:07:53
    System.out.println( new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()) );

    // 09/28/2015
    System.out.println(new SimpleDateFormat("MM/dd/yyyy").format(Calendar.getInstance().getTime()));

    // 20150928_161823
    System.out.println( new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()) );

    // Mon Sep 28 16:24:28 CEST 2015
    System.out.println( Calendar.getInstance().getTime() );

    // Mon Sep 28 16:24:51 CEST 2015
    System.out.println( new Date(System.currentTimeMillis()) );

    // Mon Sep 28
    System.out.println( new Date().toString().substring(0, 10) );

    // 2015-09-28
    System.out.println( new java.sql.Date(System.currentTimeMillis()) );

    // 14:32:26
    Date d = new Date();
    System.out.println( (d.getTime() / 1000 / 60 / 60) % 24 + ":" + (d.getTime() / 1000 / 60) % 60 + ":" + (d.getTime() / 1000) % 60 );

    // 2015-09-28 17:12:35.584
    System.out.println( new Timestamp(System.currentTimeMillis()) );

    // Java 8

    // 2015-09-28T16:16:23.308+02:00[Europe/Belgrade]
    System.out.println( ZonedDateTime.now() );

    // Mon, 28 Sep 2015 16:16:23 +0200
    System.out.println( ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME) );

    // 2015-09-28
    System.out.println( LocalDate.now(ZoneId.of("Europe/Paris")) ); // rest zones id in ZoneId class

    // 16
    System.out.println( LocalTime.now().getHour() );

    // 2015-09-28T16:16:23.315
    System.out.println( LocalDateTime.now() );
35
répondu blueberry0xff 2015-09-28 15:21:14

tl; dr

Instant.now()                                         // Capture the current moment in UTC, with a resolution of nanoseconds.

... ou ...

ZonedDateTime.now( ZoneId.of( "America/Montreal" ) )  // Capture the current moment as seen in the wall-clock time used by the people of a particular region (a time zone).

de java.time

quelques-unes des réponses mentionnent que java.les classes de temps sont le remplacement moderne pour les anciennes classes de date-heure gênantes empaquetées avec les versions les plus anciennes de Java. Voici un peu plus d'informations.

fuseau horaire

les autres réponses n'expliquent pas comment le fuseau horaire est crucial pour déterminer la date et l'heure actuelles. Pour tout moment donné, les dates et l'heure varie autour du globe par zone. Par exemple, quelques minutes après minuit est un nouveau jour dans Paris France tout en étant "hier" dans Montréal Québec .

Instant

une grande partie de votre logique d'entreprise et de stockage/échange de données doit être effectuée en UTC , comme une meilleure pratique. Pour obtenir le moment actuel dans UTC avec une résolution dans nanosecondes , utilisez Instant classe.

Instant instant = Instant.now();

ZonedDateTime

vous pouvez ajuster ce Instant dans d'autres fuseaux horaires. Appliquer une ZoneId objet pour obtenir un ZonedDateTime .

ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );

nous pouvons sauter le Instant et obtenir le courant ZonedDateTime directement.

ZonedDateTime zdt = ZonedDateTime.now( z );

passe toujours cet argument optionnel de fuseau horaire. Si elle est omise, le fuseau horaire par défaut de votre JVM est appliqué. La valeur par défaut peut changer à n'importe quel" moment , même pendant . Ne pas soumettre votre application à une externalité hors de votre contrôle. Toujours spécifier le fuseau horaire désiré/attendu.

ZonedDateTime do_Not_Do_This = ZonedDateTime.now(); // BAD - Never rely implicitly on the current default time zone.

vous pouvez ensuite extraire un Instant du ZonedDateTime .

Instant instant = zdt.toInstant();

utilisez toujours un Instant ou ZonedDateTime plutôt qu'un LocalDateTime quand vous voulez un moment réel sur la ligne de temps. Les types Local… n'ont volontairement aucune notion de fuseau horaire et ne représentent donc qu'une idée approximative d'un moment possible. Pour obtenir un moment réel, vous devez assigner un fuseau horaire pour transformer le Local… les types dans un ZonedDateTime et de ce fait le rendre significatif.

LocalDate

la classe LocalDate représente une date seulement sans Heure de la journée et sans fuseau horaire.

ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );  // Always pass a time zone.

cordes

pour générer une chaîne représentant la valeur date-heure, il suffit d'appeler toString sur le java.classes de temps pour la norme ISO 8601 formats.

String output = myLocalDate.toString();  // 2016-09-23

... ou ...

String output = zdt.toString();  // 2016-09-23T12:34:56.789+03:00[America/Montreal]

la classe ZonedDateTime étend le format standard en ajoutant judicieusement le nom du fuseau horaire entre crochets.

pour d'autres formats, faites une recherche sur le débordement de la pile pour de nombreuses Questions et réponses dans la classe DateTimeFormatter .

éviter LocalDateTime

contrairement à la commentaire sur la Question par RamanSB, vous devriez pas utiliser LocalDateTime classe pour la date actuelle.

le LocalDateTime est délibérément dépourvu de fuseau horaire ou d'information de décalage par rapport à-UTC. Donc, c'est pas approprié quand vous suivez un moment spécifique sur la ligne de temps. Certainement pas approprié pour capturer le moment présent.

la formulation "locale" est contre-intuitive. Il signifie n'importe quelle" localité 1519680920 " plutôt qu'une localité spécifique. Par exemple Noël cette année commence à minuit le 25 décembre: 2017-12-25T00:00:00 , à être représenté comme un LocalDateTime . Mais cela signifie minuit à différents points du globe à différents moments. Midnight happens first in Kiribati , plus tard en Nouvelle-Zélande, heures plus tard en Inde, et ainsi de suite, avec plusieurs autres des heures passent avant que Noël commence en France alors que les enfants au Canada attendent toujours ce jour-là. Chacun de ces points de départ de Noël serait représenté comme un ZonedDateTime distinct .


de l'extérieur de votre système

si vous ne pouvez pas faire confiance à votre horloge système, voir Java: Get current Date and Time from Server not System clock et ma réponse .

photo of a couple of external radio clock devices

java.time.Clock

pour harnacher un autre fournisseur du moment présent, écrire une sous-classe du résumé java.time.Clock classe.

vous pouvez passer votre Clock implémentation comme un argument aux différents java.temps méthodes. Exemple, Instant.now( clock ) .

Instant instant = Instant.now( yourClockGoesHere ) ;

à des fins d'essai, noter les autres implémentations de Clock disponibles statiquement à partir de Clock elle-même: fixed , offset , tick , et plus encore.


à Propos de de java.heure

Le de java.temps framework est construit dans Java 8 et plus tard. Ces classes remplacent les anciennes classes de date legacy telles que java.util.Date , Calendar , & SimpleDateFormat .

le Joda-Time projet, maintenant dans mode de maintenance , conseille la migration vers le de java.temps classes.

pour en savoir plus, voir le Oracle Tutorial . Et rechercher le débordement de la pile pour de nombreux exemples et explications. La spécification est JSR 310 .

vous pouvez échanger java.temps objets directement avec votre base de données. Utiliser un JDBC driver conforme à JDBC 4.2 ou plus tard. Pas besoin de Chaînes, pas besoin de classes java.sql.* .

où obtenir le java.les classes de temps?

Le ThreeTen-Extra le projet s'étend java.temps avec des cours supplémentaires. Ce projet est un terrain d'expérimentation pour d'éventuelles futures additions à java.temps. Vous pouvez trouver ici quelques cours utiles tels que: Interval , YearWeek , YearQuarter , et plus .

19
répondu Basil Bourque 2018-03-28 00:01:37

utiliser:

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
System.out.println(timeStamp );

(ça marche.)

18
répondu user1719182 2016-12-17 18:19:58

il existe de nombreuses méthodes différentes:

14
répondu Greg Hewgill 2011-03-03 01:52:41

Créer objet de date et simplement l'imprimer.

Date d = new Date(System.currentTimeMillis());
System.out.print(d);
10
répondu Subodh 2013-06-11 10:23:52

Avez-vous regardé java.util.Date? C'est exactement ce que vous voulez.

9
répondu Starkey 2011-03-03 01:51:23

similaire aux solutions ci-dessus. Mais je me retrouve toujours à chercher ce morceau de code:

Date date=Calendar.getInstance().getTime();
System.out.println(date);
9
répondu JeffJak 2013-12-02 16:53:53
java.util.Date date = new java.util.Date();

il est automatiquement rempli avec l'heure à laquelle il est instancié.

7
répondu Rudy 2013-02-06 16:27:15

je trouve que c'est la meilleure façon:

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime())); // 2014/08/06 16:00:22
6
répondu kelevra88 2016-12-17 18:20:25

1er Comprendre la java.util.Classe de Date

1.1 comment obtenir la Date actuelle

import java.util.Date;

class Demostration{
    public static void main(String[]args){
        Date date = new Date(); // date object
        System.out.println(date); // Try to print the date object
    }
}

1.2 comment utiliser la méthode getTime ()

import java.util.Date;
public class Main {
    public static void main(String[]args){
        Date date = new Date();
        long timeInMilliSeconds = date.getTime();
        System.out.println(timeInMilliSeconds);
    }
}

cette option renvoie le nombre de millisecondes depuis le 1er janvier 1970, 00:00:00 GMT à des fins de comparaison horaire.

1.3 comment formater le temps en utilisant la classe SimpleDateFormat

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

class Demostration{
    public static void main(String[]args){
        Date date=new Date();
        DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
        String formattedDate=dateFormat.format(date);
        System.out.println(formattedDate);
    }
}

essayez aussi en utilisant différents modèles de format comme "AAAA-MM-JJ hh:mm:ss" et sélectionnez le modèle désiré. http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

2ème Comprendre la java.util.Classe de calendrier

2.1 Utilisation de la classe de calendrier pour obtenir l'heure courante

import java.util.Calendar;

class Demostration{
    public static void main(String[]args){
        Calendar calendar=Calendar.getInstance();
        System.out.println(calendar.getTime());
    }
}

2.2 essayer d'utiliser setTime et d'autres méthodes de set pour le calendrier de set à une date différente.

Source: http://javau91.blogspot.com /

6
répondu u91 2016-12-17 18:25:10

utiliser:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd::HH:mm:ss");
System.out.println(sdf.format(System.currentTimeMillis()));

l'instruction d'impression affichera l'heure à laquelle elle est appelée et non celle à laquelle le SimpleDateFormat a été créé. Il peut donc être appelé à plusieurs reprises sans créer de nouveaux objets.

4
répondu joe pelletier 2016-12-17 18:26:08

pour java.util.Date, il suffit de créer une nouvelle Date ()

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date)); //2016/11/16 12:08:43

pour java.util.Calendrier, utilise le Calendrier.getInstance ()

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal)); //2016/11/16 12:08:43

pour java.temps.LocalDateTime, utilise LocalDateTime.maintenant ()

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime now = LocalDateTime.now();
System.out.println(dtf.format(now)); //2016/11/16 12:08:43

pour java.temps.LocalDate, utilise LocalDate.maintenant ()

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate localDate = LocalDate.now();
System.out.println(dtf.format(localDate)); //2016/11/16

référence: https://www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender /

4
répondu amit pandya 2018-02-21 23:44:48

regardez la classe Date . Il y a aussi la nouvelle classe Calendar qui est la méthode préférée pour effectuer de nombreuses opérations date / heure (un grand nombre des méthodes en Date ont été dépréciées.)

si vous voulez simplement la date courante, alors créez un nouvel objet Date ou appelez Calendar.getInstance(); .

3
répondu Michael Berry 2011-03-03 01:53:49

comme mentionné la Date de base() peut faire ce que vous avez besoin en termes d'obtenir l'heure actuelle. Dans ma récente expérience de travail lourdement avec les dates Java il ya beaucoup de bizarreries avec les classes intégrées (ainsi que la dépréciation de beaucoup de la date méthodes de classe). L'une des bizarreries qui m'est apparue est que les mois sont basés sur un indice 0, ce qui d'un point de vue technique a du sens, mais en termes réels peut être très déroutant.

si vous êtes seulement concerné par le courant date qui devrait suffire - cependant, si vous avez l'intention de faire beaucoup de manipulations/calculs avec des dates, il pourrait être très bénéfique d'utiliser une bibliothèque tierce partie (il en existe tellement parce que de nombreux développeurs Java ont été insatisfaits de la fonctionnalité intégrée).

j'appuie la recommandation de Stephen C car J'ai trouvé Joda-time très utile pour simplifier mon travail avec dates, il est également très bien documenté et vous pouvez trouver de nombreux exemples utiles à travers le web. J'ai même j'ai fini par écrire une classe d'enrubannage statique (comme des DateUtils) que j'utilise pour consolider et simplifier toute ma manipulation de date commune.

3
répondu David Fioretti 2011-03-03 02:54:08
import java.util.*;
import java.text.*;

public class DateDemo {
   public static void main(String args[]) {
      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
      System.out.println("Current Date: " + ft.format(dNow));
   }
}

vous pouvez utiliser la date pour les données actuelles fet. donc, en utilisant SimpleDateFormat get format

1
répondu Madhuka Dilhan 2016-12-13 19:26:24
 System.out.println( new SimpleDateFormat("yyyy:MM:dd - hh:mm:ss a").format(Calendar.getInstance().getTime()) );
    //2018:02:10 - 05:04:20 PM

date / heure avec AM /PM

1
répondu Shinwar ismail 2018-02-10 14:05:58

la nouvelle API Data-Time est introduite avec L'arrivée de Java 8. Cela est dû à suivre les problèmes causés par l'ancienne API data-time.

difficile à gérer fuseau horaire : besoin d'écrire beaucoup de code à traiter fuseau.

Non Thread Safe : java.util.La Date n'est pas thread-safe.

alors regardez autour de vous avec Java 8

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.time.Month;


public class DataTimeChecker {

    public static void main(String args[]) {
        DataTimeChecker dateTimeChecker = new DataTimeChecker();
        dateTimeChecker.DateTime();
    }

    public void DateTime() {
        // Get the current date and time
        LocalDateTime currentTime = LocalDateTime.now();
        System.out.println("Current DateTime: " + currentTime);

        LocalDate date1 = currentTime.toLocalDate();
        System.out.println("Date : " + date1);

        Month month = currentTime.getMonth();
        int day = currentTime.getDayOfMonth();
        int seconds = currentTime.getSecond();

        System.out.println("Month : " + month);
        System.out.println("Day : " + day);
        System.out.println("Seconds : " + seconds);

        LocalDateTime date2 = currentTime.withDayOfMonth(17).withYear(2018);
        System.out.println("Date : " + date2);

        //Prints 17 May 2018
        LocalDate date3 = LocalDate.of(2018, Month.MAY, 17);
        System.out.println("Date : " + date3);

        //Prints 04 hour 45 minutes
        LocalTime date4 = LocalTime.of(4, 45);
        System.out.println("Date : " + date4);

        // Convert to a String 
        LocalTime date5 = LocalTime.parse("20:15:30");
        System.out.println("Date : " + date5);
    }
}

code ci-dessus:

Current DateTime: 2018-05-17T04:40:34.603
Date : 2018-05-17
Month : MAY
Day : 17
Seconds : 34
Date : 2018-05-17T04:40:34.603
Date : 2018-05-17
Date : 04:45
Date : 20:15:30
1
répondu Dulith De Cozta 2018-05-17 04:42:08

vous pouvez utiliser Date objet et le format par vous-même. Il est difficile de formater et a besoin de plus de codes, comme un exemple,

Date dateInstance = new Date();
int year = dateInstance.getYear()+1900;//Returns:the year represented by this date, minus 1900.
int date = dateInstance.getDate();
int month = dateInstance.getMonth();
int day = dateInstance.getDay();
int hours = dateInstance.getHours();
int min = dateInstance.getMinutes();
int sec = dateInstance.getSeconds();

String dayOfWeek = "";
switch(day){
    case 0:
        dayOfWeek = "Sunday";
        break;
    case 1:
        dayOfWeek = "Monday";
        break;
    case 2:
        dayOfWeek = "Tuesday";
        break;
    case 3:
        dayOfWeek = "Wednesday";
        break;
    case 4:
        dayOfWeek = "Thursday";
        break;
    case 5:
        dayOfWeek = "Friday";
        break;
    case 6:
        dayOfWeek = "Saturday";
        break;
}
System.out.println("Date: " + year +"-"+ month + "-" + date + " "+ dayOfWeek);
System.out.println("Time: " + hours +":"+ min + ":" + sec);

sortie:

Date: 2017-6-23 Sunday
Time: 14:6:20

comme vous pouvez le voir c'est la pire façon que vous pouvez le faire et selon la documentation oracle il est déprécié .

Oracle doc:

la date de classe représente un instant spécifique dans temps, avec milliseconde précision.

avant JDK 1.1, la date de classe avait deux fonctions supplémentaires. Il permis l'interprétation des dates de l'année, mois, jour, heure, minute, et deuxième valeurs. Il a également permis le formatage et l'analyse de la date chaîne. Malheureusement, l'API pour ces fonctions n'était pas prête à l'internationalisation. À partir de JDK 1.1, la classe de calendrier doit être utilisé pour convertir entre les champs dates et heures et la classe DateFormat doit être utilisé pour formater et analyser les chaînes de date. Le correspondant les méthodes Dans Date sont dépréciées.

alors vous pouvez aussi utiliser Calendar class,

Calendar.YEAR;
//and lot more

Pour obtenir l'heure actuelle, vous pouvez utiliser:

Calendar rightNow = Calendar.getInstance();

Doc:

comme les autres classes sensibles à la localisation, Calendar fournit une méthode de classe, getInstance , pour obtenir un objet généralement utile de ce type. La méthode getInstance de Calendar retourne un objet Calendar dont le calendrier les champs ont été initialisés avec la date et l'heure courante

ci-dessous code pour obtenir seulement la date

Date rightNow = Calendar.getInstance().getTime();
System.out.println(rightNow);

aussi, Calendar classe ont des sous-classes. GregorianCalendar est l'un d'eux et la sous-classe de béton de Calendar et fournit le système de calendrier standard utilisé par la plupart du monde.

exemple utilisant GregorianCalendar :

Calendar cal = new GregorianCalendar();
int hours = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
int ap = cal.get(Calendar.AM_PM);

String amVSpm;
if(ap == 0){
    amVSpm = "AM";
}else{
    amVSpm = "PM";
}

String timer = hours + "-" + minute + "-" + second + " " +amVSpm;
System.out.println(timer);

vous pouvez utiliser SimpleDateFormat , moyen simple et rapide de formater la date:

String pattern = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

String date = simpleDateFormat.format(new Date());
System.out.println(date);

Lire Jakob Jenkov tutoriel: Java SimpleDateFormat .

comme d'autres l'ont mentionné, quand nous avons besoin de faire des manipulations à partir de dates, nous n'avons pas eu de façon simple et optimale ou nous ne pouvions pas satisfait construit dans les classes, APIs.

comme un exemple, quand nous avons besoin de obtenir différent entre deux dates , quand nous avons besoin de comparer deux dates(il y a une méthode intégrée aussi pour cela) et beaucoup plus. Nous avons dû utiliser des bibliothèques tierces. Un des bons et populaires est Joda Time.

lire aussi:

. La chose la plus heureuse est maintenant(en java 8), personne n'a besoin de télécharger et d'utiliser des bibliothèques pour quelque raison que ce soit. Un exemple simple pour obtenir la date et l'heure actuelle en Java 8,

LocalTime localTime = LocalTime.now();
System.out.println(localTime);

//with time zone
LocalTime localTimeWtZone = LocalTime.now(ZoneId.of("GMT+02:30"));
System.out.println(localTimeWtZone);

l'Un des bon billet de blog à lire sur Java 8 date .

et gardez remeber pour en savoir plus sur la date et l'Heure de Java parce qu'il y a beaucoup plus de façons et/ou des moyens utiles que vous pouvez obtenir/utiliser.

EDIT:

selon le commentaire de @BasilBourque, les vieilles classes de date ennuyeuses telles que java.util.Date , java.util.Calendar , et java.text.SimpleTextFormat sont maintenant legacy , supplantées par le java.time classes .

0
répondu Blasanka 2017-07-24 03:15:43

je vais aller de l'avant et jeter cette réponse parce que c'est tout ce dont j'avais besoin quand j'ai eu la même question:

Date currentDate = new Date(System.currentTimeMillis());

currentDate est maintenant votre date courante dans un objet Java Date .

-1
répondu ThePartyTurtle 2018-01-12 21:18:30