我試圖做一個簡單的練習,我需要一個日期,加90天,然後將其格式化爲這樣的事情:GregorianCalendar的日期格式和Java的
週一,1998年4月20日,
我要用GregorianCalendar
和DateFormat
這樣做。到目前爲止,我有這樣的編譯代碼,但我得到一個運行時錯誤,我無法給出Object
爲Date
格式:
import java.util.*;
import java.text.*;
class Assignment21 {
public static void main(String args[]) {
GregorianCalendar ddate = new GregorianCalendar(1994, 10, 20);
ddate.add(Calendar.DAY_OF_MONTH, 90);
SimpleDateFormat sdf = new SimpleDateFormat("EEE, MM dd, yyyy");
String date = sdf.format(ddate);
}
}
我該如何正確輸出的預定義GregorianCalendar
日期使用DateFormat
?
'SimpleDateFormat'沒有采用'Calendar'參數的'format'方法。 – Berger
我必須使用DateFormat嗎? – JMV12
只是3個小細節:1-在'Calendar' API中,月份是零索引的(1月是'0'),所以第10個月實際上是11月(不知道你是否知道,但無論如何這是要注意的事情) 。 2-爲了準確得到'1998年4月20日星期一'的格式,你應該使用'new SimpleDateFormat(「EEEE,MMMM dd,yyyy」,Locale.US)''''java.util.Locale'指定語言如果您沒有設置它,它將使用JVM默認設置,但不一定總是英文)。 3-優先使用 - 如果可能的話 - 新的java.time API,在[@Basil Bourque的回答](https://stackoverflow.com/a/46408956/7605325)中解釋。 – 2017-09-25 15:58:11