Comment faire pour obtenir l'heure actuelle au format AAAA-MM-JJ HH:MI:S Milliseconde format en Java?
Le code ci-dessous me donne l'heure actuelle. Mais il ne dit rien à propos de millisecondes.
public static String getCurrentTimeStamp() {
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//dd/MM/yyyy
Date now = new Date();
String strDate = sdfDate.format(now);
return strDate;
}
Je obtenir la date dans le format 2009-09-22 16:47:08
(AAAA-MM-JJ HH:MI:Sec).
Mais je veux récupérer l'heure courante au format 2009-09-22 16:47:08.128
((AAAA-MM-JJ HH:MI:S Ms)- où 128 indique l'ordre de la milliseconde.
SimpleTextFormat
fonctionnera très bien. Ici, la plus petite unité de temps est la seconde, mais comment puis-je obtenir de l'ordre de la milliseconde ainsi?
- Quand tout le reste échoue, lire le documentation.
- Pour info, le gênants vieille date-heure classes telles que
java.util.Date
,java.util.Calendar
, etjava.text.SimpleTextFormat
sont maintenant héritage, supplantée par la java.de temps les classes. Voir Tutoriel Oracle.
Vous devez vous connecter pour publier un commentaire.
toString(String format)
méthode? Lejava.util.Date
ne semble pas l'avoir. Faites-vous référence à la Joda Time API? Mais un avantage possible est la réutilisation de la même objet de formatage. Une autre est que vous n'avez pas à ajouter une API Jour est une classe Java standard de la bibliothèque de la classe.LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"))
SimpleDateFormat.getDateInstance(DateFormat.SHORT)
mais il semble qu'il n'y a pas de modèle pour l'Heure et la Date en même tempsjava.util.Date
,java.util.Calendar
, etjava.text.SimpleDateFormat
sont maintenant héritage, supplantée par la java.temps les classes intégré dans Java 8 et les versions ultérieures. Voir Tutoriel par Oracle.Java un liner
dans JDK8 style
Vous n'avez qu'à ajouter de l'ordre de la milliseconde champ dans votre chaîne de format de date:
La Doc API de SimpleDateFormat décrit la chaîne de format dans le détail.
essayez ceci:-
http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
ou
tl;dr
java.temps
Dans Java 8 et plus tard, nous avons le java.le temps cadre intégré dans Java 8 et les versions ultérieures. Ces nouvelles classes de supplanter le gênants old java.util.Date/.Calendrier des classes. Les nouvelles classes sont inspirés par la très réussie Joda-Time cadre, comme son successeur, un concept similaire, mais ré-architecturé. Défini par JSR 310. Prolongé par le ThreeTen-Extra projet. Voir la Tutoriel.
Être conscient que java.le temps est capable de l'ordre de la nanoseconde résolution (9 décimales en une fraction de seconde), par rapport à la milliseconde résolution (3 décimales) de java.util.Date & Joda-Time. Donc, lors de la mise en forme pour afficher uniquement les 3 décimales, vous pourriez être en masquant les données.
Si vous souhaitez éliminer toutes les microsecondes ou nanosecondes à partir de vos données, de les tronquer.
La java.les classes de temps d'utilisation ISO 8601 format par défaut lors de l'analyse/génération de chaînes. Un
Z
à la fin est courte pourZulu
, et des moyens UTC.Un
Instantané
représente un moment dans le scénario de l'UTC avec une résolution de jusqu'à nanosecondes. La capture de l'instant actuel dans Java 8 est limitée à millisecondes, avec une nouvelle mise en œuvre en Java 9 de la capture jusqu'à la nanoseconde en fonction de votre matériel informatique horloge capacités.Remplacer le
T
dans le milieu de l'espace, et lesZ
avec rien, pour faire connaître votre sortie désirée.Que vous ne se soucient pas, y compris le décalage de temps ou de zone, faire un "local" date-heure et étrangers à toute localité particulière.
Joda-Time
Du succès de Joda-Time library a été l'inspiration pour le java.cadre de temps. Conseillé de migrer vers java.de temps lors de la pratique.
La ISO 8601 format comprend millisecondes, et est la valeur par défaut pour le Joda-Time 2.4 bibliothèque.
Lors de l'exécuter...
Aussi, vous pouvez demander le millisecondes d'une fraction de seconde, comme un certain nombre, si nécessaire:
La façon la plus simple était de (avant Java 8) l'utilisation,
Mais SimpleDateFormat n'est pas thread-safe. Ni java.util.Date. Cela conduira à la conduisant à d'éventuels problèmes de concurrence pour les utilisateurs. Et il y a beaucoup de problèmes dans les modèles existants. Pour surmonter ces maintenant dans Java 8, nous avons un paquet séparé appelé java.le temps. Cette Java SE 8 Date et de l'Heure document a une bonne vue d'ensemble à ce sujet.
Donc en Java 8 quelque chose comme ci-dessous fera l'affaire (pour le format de la date/heure actuelle),
Et une chose à noter est qu'il a été développé avec l'aide de la populaire tiers bibliothèque joda-time,
Mais maintenant, le
joda-time
est en train de devenir obsolète et a demandé aux utilisateurs de migrer vers de nouveauxjava.time
.De toute façon, après avoir dit que,
Si vous avez un Calendrier exemple, vous pouvez utiliser ci-dessous pour convertir la nouvelle
java.time
,Si vous aviez un objet Date,
Si vous venez de l'époque millisecondes,
Je voudrais utiliser quelque chose comme ceci:
Variable
dateTime
pourrait être toute date et/ou de la valeur de temps, voir JavaDoc pourFormateur
.Pour compléter les réponses ci-dessus, voici un petit exemple d'un programme qui affiche l'heure et la date actuelles, y compris les millisecondes.
La doc de Java 8 noms il une fraction de seconde , tandis que dans la version 6 de Java a été nommé milliseconde. Cela m'a apporté de la confusion
L'utiliser pour obtenir votre heure actuelle dans le format spécifié :
java.util.Date
,java.util.Calendar
, etjava.text.SimpleDateFormat
sont maintenant héritage, supplantée par la java.temps les classes intégré dans Java 8 et les versions ultérieures. Voir Tutoriel par Oracle.Je ne vois pas une référence à la présente:
format ci-dessus est également utile.
http://www.java2s.com/Tutorials/Java/Date/Date_Format/Format_date_in_yyyyMMddHHmmssSSS_format_in_Java.htm
Vous pouvez simplement obtenir dans le format que vous voulez.