J'ai un objet de date Java:
Date currentDate = new Date();
Cela donnera la date et l'heure actuelles. Exemple:
Thu Jan 12 10:17:47 GMT 2012
Au lieu de cela, je veux obtenir la date, en la changeant à une heure en arrière donc cela devrait me donner
Thu Jan 12 09:17:47 GMT 2012
Quelle serait la meilleure façon de le faire?
Java.util.Calendar
Calendar cal = Calendar.getInstance();
// remove next line if you're always using the current time.
cal.setTime(currentDate);
cal.add(Calendar.HOUR, -1);
Date oneHourBack = cal.getTime();
Java.util.Date
new Date(System.currentTimeMillis() - 3600 * 1000);
org.joda.time.LocalDateTime
new LocalDateTime().minusHours(1)
Java 8: Java.time.LocalDateTime
LocalDateTime.now().minusHours(1)
Java 8 Java.time.Instant
// always in UTC if not timezone set
Instant.now().minus(1, ChronoUnit.HOURS));
// with timezone, Europe/Berlin for example
Instant.now()
.atZone(ZoneId.of("Europe/Berlin"))
.minusHours(1));
Semblable à la solution de @Sumit Jain
Date currentDate = new Date(System.currentTimeMillis() - 3600 * 1000);
ou
Date currentDate = new Date(System.currentTimeMillis() - TimeUnit.HOURS.toMillis(1));
Utilisez Calendrier .
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.set(Calendar.HOUR, cal.get(Calendar.HOUR) - 1);
Ou en utilisant le célèbre Joda Time bibliothèque:
DateTime dateTime = new DateTime();
dateTime = dateTime.minusHours(1);
Date modifiedDate = dateTime.toDate();
Soustrayez simplement le nombre de millisecondes dans une heure à partir de la date.
currentDate.setTime(currentDate.getTime() - 3600 * 1000));
Vous pouvez utiliser le code ci-dessous pour la date et l'heure:
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//get current date time with Calendar()
Calendar cal = Calendar.getInstance();
System.out.println("Current Date Time : " + dateFormat.format(cal.getTime()));
cal.add(Calendar.DATE, 1);
System.out.println("Add one day to current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.MONTH, 1);
System.out.println("Add one month to current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.YEAR, 1);
System.out.println("Add one year to current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.HOUR, 1);
System.out.println("Add one hour to current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, 1);
System.out.println("Add one minute to current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 1);
System.out.println("Add one second to current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println("Subtract one day from current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.MONTH, -1);
System.out.println("Subtract one month from current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.YEAR, -1);
System.out.println("Subtract one year from current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.HOUR, -1);
System.out.println("Subtract one hour from current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, -1);
System.out.println("Subtract one minute from current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.SECOND, -1);
System.out.println("Subtract one second from current date : " + dateFormat.format(cal.getTime()));
Sortie:
Current Date Time : 2008/12/28 10:24:53
Add one day to current date : 2008/12/29 10:24:53
Add one month to current date : 2009/01/28 10:24:53
Add one year to current date : 2009/12/28 10:24:53
Add one hour to current date : 2008/12/28 11:24:53
Add one minute to current date : 2008/12/28 10:25:53
Add one second to current date : 2008/12/28 10:24:54
Subtract one day from current date : 2008/12/27 10:24:53
Subtract one month from current date : 2008/11/28 10:24:53
Subtract one year from current date : 2007/12/28 10:24:53
Subtract one hour from current date : 2008/12/28 09:24:53
Subtract one minute from current date : 2008/12/28 10:23:53
Subtract one second from current date : 2008/12/28 10:24:52
Ce lien est bon: Voir ici
Et voir: Voir aussi
Et: ici
Et: ici
Et: ici
Si vous avez juste besoin de temps:
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
Ceci peut être réalisé en utilisant Java.util.Date
. Le code suivant soustraira 1 heure de votre date.
Date date = new Date(yourdate in date format);
Date newDate = DateUtils.addHours(date, -1)
De même pour soustraire 20 secondes de votre date
newDate = DateUtils.addSeconds(date, -20)
Cela a fonctionné pour moi au lieu d'utiliser le format .Pour travailler avec le temps, utilisez simplement les méthodes parse et toString ()
String localTime = "6:11"; LocalTime localTime = LocalTime.parse (localtime)
LocalTime lt = 6:11; LocalTime = lt.toString ()