如何从时间戳检索日月和年(长格式)

时间:2011-06-07 08:31:58

标签: java datetime

我需要从时间戳对象中检索日年和月份作为长数字:

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是时间戳对象。

有可能吗?

提前致谢。

5 个答案:

答案 0 :(得分:47)

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();

答案 1 :(得分:0)

看到您在每种方法中使用dateformat,您可以在每种方法中使用不同的格式字符串。例如:

public long getTimeStampDay()
    {

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

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

    }

答案 2 :(得分:0)

这个公认的线程稍作更新,现在已经过时了。

在过去,Java 8引入了Date and Time API,该API使提取更加干净。

我们假设bornDateLocalDateTime的实例。

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

Oracle参考:Java SE 8 Date and Time

答案 3 :(得分:-3)

此方法返回日期,日期,年份和时间:

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

答案 4 :(得分:-5)

我找到了一种简单的方法:

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

即使方法getDay getMonth和getYear也已弃用。 我认为Bozho解决方案是最好的解决方案。