Comment obtenir la date/heure actuelle en Java


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

Author: Ripon Al Wasim, 2011-03-03

24 answers

Cela dépend de la forme de date / heure que vous voulez:

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

  • Si vous voulez la date / heure dans un formulaire qui vous permet d'accéder aux composants (année, mois, etc.) numériquement, vous pouvez utiliser l'un des éléments suivants:

    • new Date() vous donne un Date objet initialisée avec la date / heure actuelle. Le problème est que les méthodes API Date sont pour la plupart défectueuses ... et obsolètes.

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

    • new org.joda.time.DateTime() vous donne un objet Joda-time initialisé avec la date / heure actuelle, en utilisant le fuseau horaire et la chronologie par défaut. Il y a beaucoup d'autres alternatives Joda ... trop nombreux à décrire ici. (Mais notez que certaines personnes Joda time a des problèmes de performances.; par exemple LocalDateTime de Jodatime est lent lorsqu'il est utilisé la première fois.)

    • En Java 8, appeler LocalDateTime.now() et ZonedDateTime.now() vous donnera représentations1 pour la date / heure actuelle.

Avant Java 8, la plupart des gens qui connaissent ces choses recommandaient Joda-time comme ayant (de loin) les meilleures API Java pour faire des choses impliquant des calculs 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 code, il n'y a pas de2 raison de migrer.


1 - Notez que LocalDateTime elle ne comprend pas de temps horaire. Comme le dit le javadoc: "Il ne peut pas représenter un instant sur la ligne de temps sans informations supplémentaires telles qu'un décalage ou un fuseau horaire."

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

 544
Author: Stephen C, 2018-05-24 23:26:55

Si vous avez juste besoin de sortir un horodatage au format AAAA. MM. JJ-HH. MM. SS (cas très fréquent), voici la façon de le faire:

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

Si vous voulez la date actuelle comme chaîne, 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
Author: duggu, 2014-07-09 18:32:57

Dans Java 8, il est:

LocalDateTime.now()

Et au cas où vous auriez besoin d'informations sur le fuseau horaire:

ZonedDateTime.now()

Et si vous souhaitez imprimer une chaîne formatée fantaisie:

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

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

Date date = new Date();
 40
Author: 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
Author: 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).

Java.temps

Quelques-unes des réponses mentionnent que java.les classes time sont le remplacement moderne des anciennes classes date-heure héritées gênantes fournies avec les premières versions de Java. Voici un peu plus d'informations.

Fuseau horaire

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

Instant

Une grande partie de votre logique métier et de votre stockage/échange de données devrait être effectuée en UTC, en tant que meilleure pratique. Pour obtenir le moment actuel dans UTC, avec une résolution de nanosecondes, utiliser Instant classe.

Instant instant = Instant.now();

ZonedDateTime

Vous pouvez ajuster cela 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 ignorer le Instant et obtenir directement le ZonedDateTime actuel.

ZonedDateTime zdt = ZonedDateTime.now( z );

Passez toujours cet argument de fuseau horaire facultatif. S'il est omis, le fuseau horaire par défaut actuel de votre JVM est appliqué. La valeur par défaut peut changer à n'importe quel moment, même pendant l'exécution. Ne pas soumettre votre application à une externalité hors de votre contrôle. Spécifiez toujours l'heure souhaitée / attendue zone.

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

Vous pouvez ensuite extraire un Instant de la ZonedDateTime.

Instant instant = zdt.toInstant();

, utilisez Toujours un Instant ou ZonedDateTime, plutôt que d'un LocalDateTime lorsque vous voulez un moment sur la timeline. Les types Local… n'ont délibérément aucun concept de fuseau horaire, ils ne représentent donc qu'une idée approximative d'un moment possible. Pour obtenir un moment réel, vous devez attribuer un fuseau horaire pour transformer les types Local… en ZonedDateTime et ainsi le rendre significatif.

LocalDate

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

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

Chaînes

Pour générer une chaîne représentant la valeur date-heure, appelez simplement toString sur java.classes de temps pour les formats standard ISO 8601.

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 les autres formats, rechercher Stack Overflow pour de nombreuses Questions et Réponses sur l'DateTimeFormatter classe.

Éviter LocalDateTime

Contrairement au commentaire de RamanSB sur la question, vous ne devriez pas utiliser LocalDateTime classe pour la date-heure actuelle.

Le LocalDateTime manque délibérément d'informations sur le fuseau horaire ou le décalage par rapport à l'UTC. Donc, c'est pas approprié lorsque vous suivez un moment précis sur la chronologie. Certainement pas approprié pour capturer le moment actuel.

Le libellé "local" est contre-intuitif. Cela signifie toute localité 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, pour être représenté comme un LocalDateTime. Mais cela signifie minuit à divers endroits du globe à différents moments. Minuit arrive d'abord dans Kiribati, plus tard en Nouvelle-Zélande, des heures plus tard en Inde, et ainsi de suite, avec plusieurs heures de plus avant le début de Noël en France quand 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: Obtenir la date et l'heure actuelles du serveur et non de l'horloge système et ma réponse .

photo de quelques appareils d'horloge radio externes

java.time.Clock

Pour exploiter un autre fournisseur du moment actuel, écrivez une sous-classe de le résumé java.time.Clock classe.

Vous pouvez passer votre implémentation Clockcomme argument aux différents java.temps méthodes. Par exemple, Instant.now( clock ).

Instant instant = Instant.now( yourClockGoesHere ) ;

À des fins de test, notez les implémentations alternatives de Clock disponibles statiquement à partir de Clock lui-même: fixed, offset, tick, et plus encore.


À propos de java.temps

Le java.temps framework est intégré à Java 8 et plus tard. Ces classes permettent d'éviter la pénible vieux héritage date-heure classes telles que java.util.Date, Calendar, & SimpleDateFormat.

Le Joda-Temps le projet, maintenant en mode de maintenance, conseille la migration vers le java.temps classes.

Pour en savoir plus, voir le Tutoriel Oracle. Et rechercher Stack Overflow 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. Utilisez un pilote JDBC compatible avec JDBC 4.2 ou version ultérieure. Pas besoin de chaînes, pas besoin de classes java.sql.*.

Où obtenir le java.les classes de temps?

  • Java SE 8, Java SE 9, et plus tard
    • Intégré.
    • Partie de l'API Java standard avec un application.
    • Java 9 ajoute quelques fonctionnalités et corrections mineures.
  • Java SE 6 et Java SE 7
    • Une grande partie du java.fonction temps est de retour, porté à Java 6 et 7ThreeTen-Backport.
  • Android
    • Versions ultérieures des implémentations Android bundle de java.les classes de temps.
    • Pour plus tôt Android, le Troisabp le projet adapte ThreeTen-Backport (mentionné ci-dessus). Voir Comment utiliser ThreeTenABP....

Le Trois-Extra le projet étend java.temps avec des cours supplémentaires. Ce projet est un terrain d'essai pour d'éventuels ajouts futurs à java.temps. Vous pouvez trouver quelques classes utiles ici comme Interval, YearWeek, YearQuarter, et plus.

 19
Author: Basil Bourque, 2018-03-28 00:01:37

Utilisation:

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

(Ça marche.)

 18
Author: user1719182, 2016-12-17 18:19:58

Il existe de nombreuses méthodes différentes:

 14
Author: Greg Hewgill, 2011-03-03 01:52:41

Créez un objet de date et imprimez-le simplement.

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

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

 9
Author: 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
Author: 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
Author: Rudy, 2013-02-06 16:27:15

Je trouve que c'est le meilleur moyen:

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
Author: 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);
    }
}

Cela renverra le nombre de millisecondes depuis le 1er janvier 1970, 00:00:00 GMT à des fins de comparaison de temps.

1.3 Comment formater l'heure 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 également d'utiliser différents modèles de format comme "aaaa-MM-jj hh:mm:ss" et sélectionnez le modèle souhaité. http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

2ème Comprendre la java.util.Classe calendrier

2.1 Utilisation de la classe Calendar pour obtenir l'horodatage actuel

import java.util.Calendar;

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

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

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

 6
Author: u91, 2016-12-17 18:25:10

Utilisation:

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

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

 4
Author: 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
Author: amit pandya, 2018-02-21 23:44:48

Jetez un oeil à 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 (beaucoup de méthodes sur Date ont été obsolètes.)

Si vous voulez juste la date actuelle, alors créez un nouvel objet Date ou appelez Calendar.getInstance();.

 3
Author: Michael Berry, 2011-03-03 01:53:49

Comme mentionné, la date de base() peut faire ce dont vous avez besoin pour obtenir l'heure actuelle. Dans mon expérience récente de travail intensif avec les dates Java, il y a beaucoup de bizarreries avec les classes intégrées (ainsi que la dépréciation de nombreuses méthodes de classe Date). Une bizarrerie qui m'a marqué était 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 n'êtes concerné que par la date actuelle qui devrait cela suffit-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 (il en existe tellement car de nombreux développeurs Java n'ont pas été satisfaits de la fonctionnalité intégrée).

Je soutiens la recommandation de Stephen C car j'ai trouvé que Joda-time était très utile pour simplifier mon travail avec les dates, il est également très bien documenté et vous pouvez trouver de nombreux exemples utiles sur le Web. J'ai même fini par écrire un wrapper statique classe (comme DateUtils) que j'utilise pour consolider et simplifier toutes mes manipulations de date courantes.

 3
Author: 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 obtenir le format

 1
Author: 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
Author: Shinwar ismail, 2018-02-10 14:05:58

Une nouvelle API Data-Time est introduite avec l'aube de Java 8. Cela est dû aux problèmes suivants qui ont été causés dans 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 jetez un oeil autour de 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);
    }
}

Sortie du codage 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
Author: Dulith De Cozta, 2018-05-17 04:42:08

Vous pouvez utiliser l'objet et le format Date par vous-même. Il est difficile de formater et besoin de plus de codes, par 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 de le faire et selon la documentation oracle, il est obsolète.

Doc Oracle:

La date de classe représente un instant spécifique dans le temps, avec la 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èmes 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 Calendar doit être utilisé pour convertir entre les champs dates et heure et la classe DateFormat doit être utilisé pour formater et analyser les chaînes de date. Le correspondant les méthodes dans Date sont obsolètes.

Donc alternativement, vous pouvez utiliser Calendar classe,

Calendar.YEAR;
//and lot more

Pour obtenir l'heure actuelle, vous pouvez utiliser:

Calendar rightNow = Calendar.getInstance();

Doc:

Comme les autres classes sensibles aux paramètres régionaux, Calendar fournit une méthode de classe, getInstance, pour obtenir un objet généralement utile de ce type. La méthode Calendar getInstance renvoie un objet Calendar dont le calendrier les champs ont été initialisés avec la date et l'heure actuelles

Ci-dessous le code pour obtenir uniquement la date

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

Aussi, Calendar classe ont Les sous-classes. GregorianCalendar est l'un d'entre eux et une sous-classe concrète de Calendar et fournit le système de calendrier standard utilisé par la plupart du monde.

Exemple en 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 format de date:

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

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

Lire ce Jakob Jenkov tutoriel: Java SimpleDateFormat.

Comme d'autres l'ont mentionné, lorsque nous avons besoin de faire de la manipulation à partir de dates, nous n'avions pas de moyen simple et le meilleur ou nous ne pouvions pas nous satisfaire construit dans les classes, les interfaces de programmation.

Par exemple, Lorsque nous devons obtenir différents entre deux dates, lorsque nous devons comparer deux dates(il existe également une méthode intégrée pour cela) et bien d'autres. Nous avons dû utiliser des bibliothèques tierces. L'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 actuelles dans 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 à l'esprit pour en savoir plus sur la date et l'heure Java car il y a beaucoup plus de moyens et/ou de moyens utiles que vous pouvez get/utilisation.

MODIFIER:

Selon @BasilBourque commentaire, le gênants vieille date-heure classes telles que java.util.Date, java.util.Calendar, et java.text.SimpleTextFormat sont maintenant héritage, supplantée par l'java.time les classes.

 0
Author: 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'avais la même question:

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

currentDate est maintenant votre date actuelle dans une Java Date objet.

 -1
Author: ThePartyTurtle, 2018-01-12 21:18:30