仅获取时间戳中的日期

2022-09-04 08:03:57

这是我的Under函数,其中我正在传递时间戳,我只需要从时间戳返回的日期,而不是小时和秒。通过下面的代码,我得到了 -

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

有什么建议吗?


答案 1

改用 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"));
}

答案 2

您可以使用此代码获取所需的结果

protected Timestamp timestamp = new Timestamp(Calendar.getInstance().getTimeInMillis());


protected String today_Date=timestamp.toString().split(" ")[0];