Il modo per farlo senza librerie di terze parti (può essere non così elegante e non così flessibile, però): aggiungere una metà di un campo (per un arrotondamento per minuti - 30 secondi) e impostare questa campo e quelli più bassi a zero.
Calendar calendar = ... // assume you already have it with a specified Date value
// 'add' cause changing larger fields if necessary
calendar.add(Calendar.SECOND, 30);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
Se un valore corrente è inferiore a 30 secondi, un valore minuto non cambierà su "aggiungi". Altrimenti, verrà incrementato di 1. In ogni caso, i secondi ei valori più bassi vengono azzerati. Quindi abbiamo un arrotondamento.
JodaTime (http://joda-time.sourceforge.net/) anche questo può essere utile:? http://stackoverflow.com/a/266846/579580 – aviad
JodaTime non fornisce questa funzionalità . Usare Calendar per estrarre i valori dei campi e quindi sottrarli/aggiungerli è troppo brutto. – darrenmc