Как получить день месяца и год с отметки времени (длинный формат)

Мне нужно получить день и месяц из объекта timestamp как длинные числа:

public long getTimeStampDay()
    {

            String iDate = new SimpleDateFormat("dd/MM/yyyy")
        .format(new Date(born_date.getDate())); 
         .....

              return day; //just the day

    }

public long getTimeStampMonth()
    {
    String iDate = new SimpleDateFormat("dd/MM/yyyy")
        .format(new Date(born_date.getDate())); 
         .....

              return month; //just month

    }

public long getTimeStampYear()
    {
    String iDate = new SimpleDateFormat("dd/MM/yyyy")
        .format(new Date(born_date.getDate())); 
         .....

              return year; //just year
    }

born_date - объект временной метки.

Можно ли это сделать?

Спасибо заранее.

Ответы

Ответ 1

long timestamp = bornDate.getTime();
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(timestamp);
return cal.get(Calendar.YEAR);

Есть поля календаря для каждого необходимого вам свойства.

В качестве альтернативы вы можете использовать joda-time:

DateTime dateTime = new DateTime(bornDate.getDate());
return datetime.getYear();

Ответ 2

Увидев, что вы используете формат даты в каждом методе, вы можете использовать в каждом случае другую строку формата. Например:

public long getTimeStampDay()
    {

            String day = new SimpleDateFormat("dd")
        .format(new Date(born_date.getDate())); 
         .....

              return Long.parseLong(day); //just the day

    }

Ответ 3

Небольшое обновление этой хорошо принятой темы, которая немного устарела.

В свое время в Java 8 был представлен API даты и времени, который делает процесс извлечения намного чище.

Предположим, что bornDate является экземпляром LocalDateTime.

bornDate.getDayOfMonth(); // extracts day of month
bornDate.getMonth();      // extracts month
bornDate.getYear();       // extracts year

Ссылка на Oracle: Java SE 8 Дата и время

Ответ 4

Этот метод возвращает день, дату, год и время:

Timestamp timestamp = new Timestamp(System.currentTimeMillis());

Ответ 5

Я нашел простой способ сделать это:

born_date.getDay();
born_date.getMonth();
born_date.getYear();

даже если метод getDay getMonth и getYear устарели. Я думаю, что решение Божо является лучшим.