dass trivial sein sollte: Ich möchte alle Zeitinformationen entfernen und nur Tag Set verlassen:Klar Calendar.HOUR funktioniert nicht auf Android
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Calendar calendar = Calendar.getInstance();
log.debug("{}", calendar.getTimeInMillis());
calendar.clear(Calendar.HOUR_OF_DAY);
log.debug("{}", calendar.getTimeInMillis());
calendar.clear(Calendar.MINUTE);
log.debug("{}", calendar.getTimeInMillis());
calendar.clear(Calendar.SECOND);
log.debug("{}", calendar.getTimeInMillis());
calendar.clear(Calendar.MILLISECOND);
log.debug("{}", calendar.getTimeInMillis());
String today = format.format(calendar.getTime());
Aber es lässt Stunde Set:
06-03 07:14:31.296 1464930871295
06-03 07:14:31.297 1464930871295
06-03 07:14:31.297 1464930031295
06-03 07:14:31.298 1464930000295
06-03 07:14:31.299 1464930000000
06-03 07:14:31.300 Date is Thu Jun 02 07:00:00 GMT+02:00 2016
Warum?
aktualisieren
Android javadoc könnte falsch sein, da einige Antworten darauf hin:
Löscht den Wert im Zeitfeld gegeben, es Frisch- und Markierung einen Wert von Null zugewiesen wird. Der tatsächliche Feldwert wird beim nächsten Zugriff auf das Feld ermittelt.
was nehme an, wenn Sie tun 'calendar.set (Calendar.HOUR_OF_DAY, 0);'? –
Die Felder HOUR_OF_DAY, HOUR und AM_PM werden unabhängig behandelt und die Auflösungsregel für die Tageszeit wird angewendet. Wenn Sie eines der Felder löschen, wird der Stundenwert dieses Kalenders nicht zurückgesetzt. Verwenden Sie set (Calendar.HOUR_OF_DAY, 0), um den Stundenwert zurückzusetzen. – Krutik