Получить только дату из метки времени
Это моя функция ниже, в которой я передаю метку времени, мне нужна только дата взамен от метки времени, а не часы и секунды. С приведенным ниже кодом я получаю-
private String toDate(long timestamp) {
Date date = new Date (timestamp * 1000);
return DateFormat.getInstance().format(date).toString();
}
это результат, который я получаю.
11/4/01 11:27 PM
но мне нужна только такая дата, как эта
2001-11-04
какие предложения?
3 ответов
вместо этого используйте SimpleDateFormat:
private String toDate(long timestamp) {
Date date = new Date(timestamp * 1000);
return new SimpleDateFormat("yyyy-MM-dd").format(date);
}
Обновлено: Java 8 решение:
private String toDate(long timestamp) {
LocalDate date = Instant.ofEpochMilli(timestamp * 1000).atZone(ZoneId.systemDefault()).toLocalDate();
return date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
}
вы можете использовать этот код:
защищенная метка времени метка времени = новая метка времени (календарь.getInstance ().getTimeInMillis());
защищенная строка today_Date=отметка времени.toString ().сплит(" ")[0];
Joda Времени
на Joda Времени библиотека предлагает LocalDate
класс для представления значения только даты без какого-либо времени суток или часового пояса.
Часовой Пояс
определение даты требует часовой пояс. Момент сразу после полуночи в Париже означает дату, которая на день опережает тот же самый момент в Монреале. Если не указать часовой пояс, применяется текущий часовой пояс JVM по умолчанию - вероятно, не то, что вы хотите, поскольку результаты могут отличаться.
Пример Кода
long millisecondsSinceUnixEpoch = ( yourNumberOfSecondsSinceUnixEpoch * 1000 ); // Convert seconds to milliseconds.
DateTimeZone timeZone = DateTimeZone.forID( "America/Montreal" );
LocalDate localDate = new LocalDate( millisecondsSinceUnixEpoch, timeZone );
String output = localDate.toString(); // Defaults to ISO 8601 standard format, YYYY-MM-DD.
Накануне
чтобы получить за день до этого, как указано в комментарии.
LocalDate dayBefore = localDate.minusDays( 1 );
преобразовать в j.u.Дата
java.утиль.Дата. & Календарь классов следует избегать как они, как известно, хлопотно. Но при необходимости вы можете обратиться.
java.util.Date date = localDate.toDate(); // Time-of-day set to earliest valid for that date.