我需要从时间戳对象中检索日年和月份作为长数字:
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
是时间戳对象。
有可能吗?
提前致谢。
答案 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使提取更加干净。
我们假设bornDate
是LocalDateTime
的实例。
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解决方案是最好的解决方案。