2017-05-06 50 views
0

我無法打印的GregorianCalendar公曆Java錯誤

package Tests; 

import java.util.Date; 
import java.util.GregorianCalendar; 

public class Data 
{ 

    public static void main(String[] args) 
    { 
     GregorianCalendar time = new GregorianCalendar(1999, 2, 2); 
     System.out.println(time); 
    } 

} 

我收到此

java.util.GregorianCalendar中的[時間= ?, areFieldsSet =假,areAllFieldsSet =假,寬鬆=真,區= sun.util.calendar.ZoneInfo [ID = 「歐洲/貝爾格萊德」,偏移= 3600000,dstSavings = 3600000,useDaylight =真,過渡= 119,lastRule = java.util.SimpleTimeZone中[ID =歐洲/貝爾格萊德,偏移= 3600000,dstSavings = 3600000,useDaylight =真,startYear = 0,STARTMODE = 2,startMonth = 2,朝九特派= -1,startDayOfWeek = 1,開始時間= 3600000,startTimeMode = 2,endMode = 2,endMonth = 9,endday指定= -1,endD ayOfWeek = 1,結束時間= 3600000,endTimeMode = 2]],Firstdayofweek可= 2,minimalDaysInFirstWeek = 4,ERA = ?, YEAR = 1999,MONTH = 2,WEEK_OF_YEAR = ?, WEEK_OF_MONTH = ?, DAY_OF_MONTH = 2,DAY_OF_YEAR = ?, DAY_OF_WEEK = ?, DAY_OF_WEEK_IN_MONTH = ?, AM_PM = 0,小時= 0,HOUR_OF_DAY = 0,分= 0,SECOND = 0,多段微差= ?, ZONE_OFFSET = ?, DST_OFFSET =?]

如何打印它?

+0

檢查的SimpleDateFormat(見HTTPS ://docs.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html) – Leo

回答

0

您可以使用此類似: -

GregorianCalendar calendar = new GregorianCalendar(); 
Date now = calendar.getTime(); 
System.out.println(now); 

Calendar cal2 = new GregorianCalendar(2010, 9, 26); // allocate with the specified date 
cal2.get(Calendar.DAY_OF_WEEK);      // 1 (Sunday) to 7 (Saturday) 
+0

但是爲什麼我不能以簡單的方式使用它?只需在參考「時間」上打印? – user2540406

0

java.time

現代化的解決方案使用LocalDate類代替。避免GregorianCalendar,因爲它現在已經過時。

LocalDate ld = LocalDate.of(1999 , Month.FEBRUARY , 2) ; 

ld.toString():1999年2月2日

toString的方法使用標準的ISO 8601種格式。對於其他格式,請使用DateTimeFormatter類。搜索堆棧溢出瞭解更多示例和討論,這已經被多次討論。

通常最好讓DateTimeFormatter自動爲你本地化。

Locale locale = Locale.CANADA_FRENCH ; 
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL).withLocale(locale) ; 
String output = ld.format(f) ; 

狂歡2 FEVRIER 1999年


關於java.time

java.time框架是建立在Java 8和更高版本。這些類取代了日期時間類legacy,如java.util.Date,Calendar,& SimpleDateFormat

Joda-Time項目現在位於maintenance mode,建議遷移到java.time類。請參閱Oracle Tutorial。並搜索堆棧溢出了很多例子和解釋。規格是JSR 310

從何處獲取java.time類?

ThreeTen-Extra項目與其他類擴展java.time。這個項目是未來可能增加java.time的一個試驗場。您可以在這裏找到一些有用的類,如Interval,YearWeek,YearQuartermore