tl; dr
Certaines des autres réponses sont correctes en recommandant les classes java.time , mais essayez d'utiliser des longueurs inutiles pour vos besoins spécifiques.
Instant.now() // Capture the current moment in UTC with a resolution as fines nanoseconds but usually in microseconds or milliseconds.
.truncatedTo( ChronoUnit.MINUTES ) // Lop off any seconds or fractional second, to get a value in whole minutes.
.toString() // Generate a String in standard ISO 8601 format where a `T` separates the year-month-day from the hour-minute-second, and the `Z` on the end for “Zulu” means UTC.
2018-01-23T12: 34Z
Instant::toString
La jav.time.Instant
classe représente un moment en UTC, toujours en UTC.
Instant instant = Instant.now() ;
instant.toString (): 2018-01-23T12: 34: 56.123456Z
La Z
fin de votre exemple de chaîne 2010-10-12T08:50Z
se prononce «Zulu» et signifie UTC .
Le format souhaité se trouve être conforme à la norme ISO 8601 . Les classes java.time utilisent ces formats standard par défaut lors de l'analyse / génération de chaînes. Il n'est donc pas nécessaire de spécifier un modèle de formatage. Appelez simplement Instant::toString
comme vu ci-dessus.
Si vous voulez spécifiquement des minutes entières sans seconde ou fraction de seconde, tronquez. Spécifiez une unité de temps via la ChronoUnit
classe.
Instant instant = Instant.now().truncatedTo( ChronoUnit.MINUTES ) ;
String output = instant.toString(); // Generate a `String` object in standard ISO 8601 format.
À propos de java.time
Le framework java.time est intégré à Java 8 et versions ultérieures. Ces classes supplantent les anciens gênants hérités des classes date-heure tels que java.util.Date
, Calendar
, et SimpleDateFormat
.
Le projet Joda-Time , désormais en mode maintenance , conseille la migration vers les classes java.time .
Pour en savoir plus, consultez le didacticiel Oracle . Et recherchez Stack Overflow pour de nombreux exemples et explications. La spécification est JSR 310 .
Vous pouvez échanger des objets java.time 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 java.sql.*
cours.
Où obtenir les classes java.time?
- Java SE 8 , Java SE 9 , Java SE 10 et versions ultérieures
- Intégré.
- Une partie de l'API Java standard avec une implémentation groupée.
- Java 9 ajoute quelques fonctionnalités et correctifs mineurs.
- Java SE 6 et Java SE 7
- Une grande partie de la fonctionnalité java.time est rétroportée vers Java 6 et 7 dans ThreeTen-Backport .
- Android
- Versions ultérieures des implémentations de bundles Android des classes java.time.
- Pour les versions antérieures d'Android (<26), le projet ThreeTenABP adapte ThreeTen-Backport (mentionné ci-dessus). Voir Comment utiliser ThreeTenABP… .
Le projet ThreeTen-Extra étend java.time avec des classes supplémentaires. Ce projet est un terrain d'essai pour de futurs ajouts possibles à java.time. Vous trouverez peut - être des classes utiles ici, comme Interval
, YearWeek
, YearQuarter
et plus .