Code Java pour obtenir l'heure actuelle [dupliquer]


Cette question a déjà une réponse ici:

Je recherche du code dans java pour récupérer ou synchroniser l'heure système de mon PC local dans mon application.

Author: eckes, 2009-05-07

14 answers

Essayez ceci:

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class currentTime {

    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        System.out.println( sdf.format(cal.getTime()) );
    }

}

Vous pouvez formater SimpleDateFormat comme vous le souhaitez. Pour toute information supplémentaire, vous pouvez regarder dans l'api java:

SimpleDateFormat

Calendrier

 147
Author: Artur, 2015-06-02 16:27:20

Les deux

new java.util.Date()

Et

System.currentTimeMillis()

Vous donnera l'heure actuelle du système.

 131
Author: sleske, 2012-08-30 10:13:59

Tl; dr

Instant.now()  // UTC

...ou...

ZonedDateTime.now(
    // Specify time zone.
    ZoneId.of( "Pacific/Auckland" )
)  

Détails

Le groupé java.util.Date/.Calendar les cours sont notoirement gênants. Les éviter. Ils sont maintenant hérités, supplantés par le java.le temps cadre.

Au lieu de cela, utilisez soit:

Java.temps

ZonedDateTime zdt = ZonedDateTime.now();

Si nécessaire pour l'ancien code, convertissez-le en java.util.Date. Passer par à Instant ce qui est un moment sur la timeline dans UTC .

java.util.Date date = java.util.Date.from( zdt.toInstant() );

Fuseau horaire

Mieux vaut spécifier explicitement votre fuseau horaire souhaité/attendu plutôt que de compter implicitement sur l'heure par défaut actuelle de la JVM la zone.

ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.now( zoneId );  // Pass desired/expected time zone.

Joda-Temps

POUR INFO, le projet Joda-Timeest maintenant en mode maintenance, l'équipe conseillant la migration vers le java.temps classes.

DateTime now = DateTime.now();

Pour convertir un objet Joda-Time DateTime en java.util.Date d'interopérabilité avec d'autres classes {

java.util.Date date = now.toDate();

Recherchez StackOverflow avant de poster. Votre question a déjà été posée et répondue.


À propos Java.temps

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

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

Pour en savoir plus, consultez le tutoriel Oracle. Et rechercher Stack Overflow pour de nombreux exemples et explication. La spécification est JSR 310.

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 une implémentation groupée.
    • Java 9 ajoute quelques fonctionnalités et corrections mineures.
  • Java SE 6 et Java SE 7
    • Une grande partie du java.temps la fonctionnalité est porté à Java 6 et 7ThreeTen-Backport.
  • Android
    • Versions ultérieures des implémentations Android bundle de java.les classes de temps.
    • Pour Android plus tôt, 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.

 38
Author: Basil Bourque, 2018-03-21 17:48:07

Système.currentTimeMillis()

Tout le reste fonctionne.. par exemple, new Date () appelle le système.currentTimeMillis ().

 10
Author: mP., 2009-05-07 10:04:51

Juste pour informer les développeurs, et heureusement à Basil Bourque, je veux juste ajouter ma pierre à ce sujet.

Si vous voulez simplement obtenir le format HH:MM:SS, faites ceci:

LocalTime hour = ZonedDateTime.now().toLocalTime().truncatedTo(ChronoUnit.SECONDS);

Santé.

PS: Cela ne fonctionnera qu'au moins avec Java 8 !

 6
Author: Damiii, 2016-03-12 15:40:36

Comme dit ci-dessus, vous pouvez utiliser

Date d = new Date();

Ou utiliser

Calendar.getInstance();

Ou si vous le voulez en millis

System.currentTimeMillis()
 5
Author: Nuno Furtado, 2009-05-07 10:01:25

Essayer de cette façon, plus efficace et compatible:

SimpleDateFormat time_formatter = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss.SSS");
String current_time_str = time_formatter.format(System.currentTimeMillis());
//Log.i("test", "current_time_str:" + current_time_str);
 5
Author: Verdigrass, 2016-05-13 02:12:44

Pas vraiment sûr de ce que vous vouliez, mais vous avez probablement juste besoin de

Date d = new Date();
 4
Author: Raibaz, 2009-05-07 10:00:07

Essayez ceci:

final String currentTime    = String.valueOf(System.currentTimeMillis());
 4
Author: Joolah, 2016-04-12 08:59:31

Vous pouvez utiliser new Date () et cela vous donnera l'heure actuelle.

Si vous devez le représenter dans un format (et généralement vous devez le faire), utilisez des formateurs.

DateFormat df = DateFormat.getDateTimeInstance (DateFormat.MEDIUM, DateFormat.MEDIUM, new Locale ("en", "EN"));
String formattedDate = df.format (new Date ());
 3
Author: Roman, 2009-05-07 10:04:24

Nouvelle date().getTime () est mis sur écoute.

    Date date = new Date();
    System.out.println(date);
    System.out.println(date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds());
    long t1 = date.getTime();
    System.out.println((t1 / 1000 / 60 / 60) % 24 + ":" + (t1 / 1000 / 60) % 60 + ":" + (t1 / 1000) % 60);
    long t2 = System.currentTimeMillis();
    System.out.println((t2 / 1000 / 60 / 60) % 24 + ":" + (t2 / 1000 / 60) % 60 + ":" + (t2 / 1000) % 60);

Il me renvoie le mauvais moment millis. System.currentTimeMillis() aussi. Puisque je demande à la Date instance de me dire le millis de temps correspondant, il doit renvoyer les correspondants pas les autres d'un fuseau horaire différent. Drôle comment les méthodes obsolètes sont les seules qui renvoient des valeurs correctes.

 3
Author: mini-me, 2012-07-14 06:41:21

Pour obtenir l'heure du système, utilisez le calendrier.getInstance ().getTime ()

Et vous devriez obtenir la nouvelle instance de Calendrier à chaque fois pour avoir actuelle temps.

À changer heure système à partir du code java, vous pouvez utiliser une ligne de commande

 2
Author: Alex, 2009-05-07 10:09:21

Je comprends que c'est une question assez ancienne. Mais tiens à préciser que:

Date d = new Date() 

Est dépricié dans les versions actuelles de Java. La méthode recommandée consiste à utiliser un objet calendrier. Par exemple:

Calendar cal = Calendar.getInstance();
Date currentTime = cal.getTime();

J'espère que cela aidera les personnes qui peuvent porter cette question à l'avenir. Merci à vous tous.

 1
Author: Adi, 2014-03-23 14:33:07

Essayez ceci pour obtenir la date actuelle.Vous pouvez également obtenir l'heure, les minutes et les secondes actuelles en utilisant getters:

new Date(System.currentTimeMillis()).get....()
 1
Author: Brahim Boulkriat, 2014-06-20 16:15:44