Доберитесь в предыдущий день [копируют]

Swift 3

Это сработало для меня:

self.isUserInteractionEnabled = true
13
задан Community 23 May 2017 в 10:30
поделиться

4 ответа

Использование Java 1.6 java.util.Calendar.add :

public static Date subtractDay(Date date) {

    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.DAY_OF_MONTH, -1);
    return cal.getTime();
}

Другие предлагают использовать Joda Time , который в настоящее время является JSR 310 , а позже должен быть включен в саму Java.

44
ответ дан 1 December 2019 в 19:23
поделиться

Важно помнить, что класс Date должен представлять любые моменты времени, в то время как класс Calendar используется для управления этими моментами времени. Наконец, SimpleDateFormat представит их как строки.

Итак, лучший способ - использовать класс Calendar для вычисления новой даты за вас. Это обеспечит учет любых капризов (переход на летнее время, високосные годы и т.п.).

Я предполагаю, что вы действительно не хотите находить «24 часа назад», но на самом деле хотите, чтобы новый экземпляр Date представлял «на этот раз вчера» - в любом случае вы можете запросить у экземпляра календаря дату за 24 часа до другого или на 1 день раньше.

Летнее время - отличный пример. Великобритания «рванулась вперед» 26 марта 2009 г. Итак, за 1 день до 3:00 26 марта.

0
ответ дан 1 December 2019 в 19:23
поделиться

вычтите 1000 * 60 * 60 * 24 из времени и создайте новую дату.

Date yesterday = new Date(d.getTime() - (1000*60*60*24));
-4
ответ дан 1 December 2019 в 19:23
поделиться
    int dayInMs = 1000 * 60 * 60 * 24;
    Date previousDay = new Date(olddate.getTime() - dayInMs);

Лично, если есть много вычислений времени / даты, я бы пошел с Йода-тайм .

-4
ответ дан 1 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: