DateFormat format = new SimpleDateFormat("ddд HHч mmм ssс") ;
format.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println( format.format(new Date(864000000000L)));
Данный пример кода выводит
19д 00ч 00м 00с
Но 864000000000 секунд = 10000 дням. В чем же проблема?
Вы неправильно используете паттерн dd
. Согласно документации это:
d - Day in month
Поэтому все вполне логично.
Чтобы получить желаемый результат воспользуйтесь следующим кодом:
long days = TimeUnit.MILLISECONDS.toDays(864000000000L);
Остальные дни - в годах и месяцах, которые не включены в формат.
https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
Дата (Date
) - это метка на календаре и часах, а не промежуток времени.
864000000000L в милисекундах, а не в секундах
/**
* Allocates a <code>Date</code> object and initializes it to
* represent the specified number of milliseconds since the
* standard base time known as "the epoch", namely January 1,
* 1970, 00:00:00 GMT.
*
* @param date the milliseconds since January 1, 1970, 00:00:00 GMT.
* @see java.lang.System#currentTimeMillis()
*/
public Date(long date) {
fastTime = date;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я тестирую чужой проектВ нем есть контроллер api которого я хочу проверить
У меня в коде toast вызывается бесконечно, но я хочу чтобы он вызывался условно каждые 20 секундКак я могу это реализовать?