我看黑馬的視頻,里面的老師說format方法,可以將毫秒值轉化成日期,就是截圖中的第二個format方法,但是在我的電腦上就報錯說是引數應為Date,老師的就可以為long
uj5u.com熱心網友回復:
你是不是哪里打錯了
沒有問題啊
uj5u.com熱心網友回復:
沒有寫錯,還有其他的原因嗎uj5u.com熱心網友回復:
自己查看java doc檔案不就好了嗎。不知道你們老師的jdk是什么版本的,java1.8的format引數的確只支持Date
所以你是不是看錯了,會不會是format(new Date(1000)) 用long初始化了一個Date物件?
uj5u.com熱心網友回復:
public static void main(String[] args) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(simpleDateFormat.format(System.currentTimeMillis()));
}
輸出
2020-08-10
uj5u.com熱心網友回復:
simpledateformat的父類的父類有個final修飾的format方法。long是基本資料型別
Long是long包裝類繼承object
uj5u.com熱心網友回復:
黑馬說的是Long繼承object。object類沒有自動裝箱,你要Long.valueof(long num)的否則就是型別不匹配uj5u.com熱心網友回復:
jdk版本問題吧uj5u.com熱心網友回復:
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");
}
這是dateformat里的
public Date(long date) {
fastTime = date;
}
這是date類
uj5u.com熱心網友回復:
為啥你的行,版本問題嗎
uj5u.com熱心網友回復:
我的jdk環境
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
開發工具 idea 2020.1.2 作業系統win10企業版 2004
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/24185.html
標籤:Java相關
上一篇:神奇的陣列下標越界
