• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyświetlanie klasy GregorianCalendar

Cloud VPS
0 głosów
327 wizyt
pytanie zadane 6 maja 2017 w Java przez woks Nowicjusz (230 p.)
edycja 6 maja 2017 przez woks

Czemu nie mogę w prosty sposób wydrukować daty z klasy GregorianCalendar?

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);
	}

	
	
}

Pytam w kontekście klasy "Date"? Czemu w GregorianCalendar muszę dobierać się do getera a w Date już nie?

1 odpowiedź

0 głosów
odpowiedź 7 maja 2017 przez adrian313 Bywalec (2,850 p.)
edycja 7 maja 2017 przez adrian313

Bo twórcy biblioteki GregorianCalendar tak ją zaprojektowali, że metoda toString() jest zalecana tylko do celów debugowania. A datę pobieramy getterami. Czytając z dokumentacji " This method is intended to be used only for debugging purposes, and the format of the returned string may vary between implementations. The returned string may be empty but may not be null."

podczas wywołania System.out.println(time);
domyślnie na obiekcie time klasy GregorianCalendar wywoływana jest metoda toString(), która wypisuje wszystkie pola tej klasy (albo większość nie zgłebiałem się).

Ewentualnie można przeładować (Overriding) toString np. tak:

GregorianCalendar time = new GregorianCalendar(1999, 2, 2){
  public String toString() {
    return String.format("%d/%02d/%02d", get(YEAR), get(MONTH), get(DAY_OF_MONTH));
  }
};



Natomiast na obiekcie klasy Date metoda toString() działa tak jak w GregorianCalender getTime(), czyli ładnie zwraca to co zazwyczaj mamy na myśli wywołując toString na obiekcie danej klasy.

Podobne pytania

0 głosów
0 odpowiedzi 411 wizyt
pytanie zadane 8 listopada 2022 w Java przez CanoNee Nowicjusz (230 p.)
0 głosów
1 odpowiedź 325 wizyt
+1 głos
1 odpowiedź 356 wizyt
pytanie zadane 12 lutego 2022 w Java przez mewtwo Użytkownik (830 p.)

93,487 zapytań

142,420 odpowiedzi

322,772 komentarzy

62,903 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...