Java 如何从iso时间中扣除1分钟

Java 如何从iso时间中扣除1分钟,java,datetime,datetime-format,Java,Datetime,Datetime Format,我使用下面的代码使用java获得iso时间。我需要1分钟的旧时间,以便从我的数据库中获得1分钟的旧数据。 在我的数据库中,时间保存为ios格式。有人能告诉我如何使用iso时间格式从当前时间中减去1分钟吗 //我的代码 TimeZone tz = TimeZone.getTimeZone("UTC"); DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'"); df.setTimeZone(tz);

我使用下面的代码使用java获得iso时间。我需要1分钟的旧时间,以便从我的数据库中获得1分钟的旧数据。 在我的数据库中,时间保存为ios格式。有人能告诉我如何使用iso时间格式从当前时间中减去1分钟吗

//我的代码

TimeZone tz = TimeZone.getTimeZone("UTC");
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'");
        df.setTimeZone(tz);
        String nowAsISO = df.format(new Date());

使用
Calendar
class尝试此操作:

TimeZone tz = TimeZone.getTimeZone("UTC");
Calendar c = Calendar.getInstance();
c.setTimeZone(tz);
c.set(Calendar.MINUTE, c.get(Calendar.MINUTE) - 1);

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'");
String nowAsISO = df.format(c.getTime());

System.out.println(nowAsISO);

使用
Calendar
class尝试此操作:

TimeZone tz = TimeZone.getTimeZone("UTC");
Calendar c = Calendar.getInstance();
c.setTimeZone(tz);
c.set(Calendar.MINUTE, c.get(Calendar.MINUTE) - 1);

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'");
String nowAsISO = df.format(c.getTime());

System.out.println(nowAsISO);
这应该很好:

    LocalDateTime ldt = Instant.now()
                    .atZone(ZoneId.systemDefault())
                    .toLocalDateTime()
                    .minusMinutes(1);
这应该很好:

    LocalDateTime ldt = Instant.now()
                    .atZone(ZoneId.systemDefault())
                    .toLocalDateTime()
                    .minusMinutes(1);

备注:这只适用于JDK 8。是的!Java7已经有一段时间没有出现了。以上一个有效。备注:这将只适用于JDK 8。是的!Java7已经有一段时间没有出现了。上面的那个有效,谢谢。我试试看。如果有帮助的话,请投赞成票。干杯,我一定会的。成功了。谢谢,谢谢。我试试看。如果有帮助的话,请投赞成票。干杯,我一定会的。成功了。谢谢