当前位置: 首页 > 知识库问答 >
问题:

实体日期属性:无法将给定对象格式化为日期

司空昊阳
2023-03-14

我有一个实体日期属性:

@Temporal(TemporalType.TIMESTAMP)
private Date paymentDate;
Format df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
String pDate = df.format(item.getPaymentDate());

共有1个答案

金亦
2023-03-14

format#format(Object)方法委托给子类型的format(Object、StringBuffer、FieldPosition)方法。SimpleDateFormat继承的DateFormat实现如下所示

public final StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition fieldPosition)
{
    if (obj instanceof Date)
        return format( (Date)obj, toAppendTo, fieldPosition );
    else if (obj instanceof Number)
        return format( new Date(((Number)obj).longValue()), toAppendTo, fieldPosition );
    else
        throw new IllegalArgumentException("Cannot format given Object as a Date");
}

换句话说,item.getPaymentDate()返回的值必须是null或者是java.util.datejava.lang.number以外的类型。

 类似资料: