tl; dr
Algumas das outras respostas estão corretas ao recomendar as classes java.time , mas continuam usando comprimentos desnecessários para suas necessidades específicas.
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
A jav.time.Instant
classe representa um momento no UTC, sempre no UTC.
Instant instant = Instant.now() ;
Instale o Adobe Flash Player no seu dispositivo
O Z
final de sua sequência de exemplo 2010-10-12T08:50Z
é pronunciado "Zulu" e significa UTC .
O formato desejado está em conformidade com a norma ISO 8601 . As classes java.time usam esses formatos padrão por padrão ao analisar / gerar strings. Portanto, não há necessidade de especificar um padrão de formatação. Basta ligar Instant::toString
como visto acima.
Se você deseja especificamente minutos inteiros sem segundo ou segundo fracionário, então trunque. Especifique uma unidade de tempo via ChronoUnit
classe.
Instant instant = Instant.now().truncatedTo( ChronoUnit.MINUTES ) ;
String output = instant.toString(); // Generate a `String` object in standard ISO 8601 format.
Sobre java.time
A estrutura java.time é integrada ao Java 8 e posterior. Essas classes substituem o antigo e problemático legado data e hora , comojava.util.Date
, Calendar
, e SimpleDateFormat
.
o Jodaprojeto , agora em modo de manutenção , aconselha a migração para as classes java.time .
Para saber mais, consulte o Tutorial do Oracle . E procure Stack Overflow para muitos exemplos e explicações. A especificação é JSR 310 .
Você pode trocar java.time objetos diretamente com seu banco de dados. Use um driver JDBC compatível com JDBC 4.2 ou posterior. Não há necessidade de strings, não há necessidade de java.sql.*
classes.
Onde obter as classes java.time?
- Java SE 8 , Java SE 9 , Java SE 10 e posterior
- Construídas em.
- Parte da API Java padrão com uma implementação em pacote configurável.
- O Java 9 adiciona alguns recursos e correções menores.
- Java SE 6 e Java SE 7
- Grande parte da funcionalidade java.time é portada para Java 6 e 7 no ThreeTen-Backport .
- Android
- Versões posteriores das implementações de pacote configurável do Android das classes java.time.
- Para anteriormente Android (<26), o ThreeTenABP projeto adapta ThreeTen-Backport (mencionados acima). Consulte Como usar o ThreeTenABP… .
O projeto ThreeTen-Extra estende java.time com classes adicionais. Este projeto é um campo de prova para possíveis adições futuras ao java.time. Você pode encontrar algumas classes úteis aqui, como Interval
, YearWeek
, YearQuarter
, e mais .