tl; dr
LocalDate.now(ZoneId.of(“America/Montreal”)).getDayOfYear()
„juliańska” terminologii
Określenie „juliańska” są czasami używane luźno oznacza ordinal dni w roku, lub Ordinal date, co oznacza liczbę od 1 do 365 lub 366 (leap years). 1 stycznia to 1
, 2 stycznia to 2
, 31 grudnia to 365
(lub 366
w latach przestępnych).
Ten luźny (nieprawidłowe) stosowanie Julian
prawdopodobnie pochodzi od use in astronomy i innych dziedzin śledzenie daty jako ciągłego liczenia dni od południa czasu uniwersalnego z dniem 1 stycznia 4713 roku pne (na Julian calendar). W dzisiejszych czasach data juliańska zbliża się do dwóch i pół miliona, 2,457,576
.
java.time
Ramy java.time wbudowane w Java 8 i później zapewnia łatwy obiekt, aby dostać się z dnia na dzień w roku.
Klasa LocalDate
reprezentuje wartość tylko dla daty bez pory dnia i bez strefy czasowej. Możesz przesłuchiwać w dzień w roku.
LocalDate localDate = LocalDate.of (2010 , Month.JUNE , 8);
int dayOfYear = localDate.getDayOfYear();
Zrzut na konsolę. Wyniki pokazują, że 08 czerwca 2010 to rzeczywiście dzień # 159.
System.out.println ("localDate: " + localDate + " | dayOfYear: " + dayOfYear);
LOCALDATE: 2010-06-08 | dayOfYear: 159
Strefa czasowa ma kluczowe znaczenie przy ustalaniu daty. W danym momencie data zmienia się na całym świecie według strefy. Na przykład, kilka minut po północy w Paryżu Francja jest nowym dniem, a jednocześnie "wczoraj" w Montrealu Québec.
ZoneId z = ZoneId.of(“America/Montreal”);
LocalDate today = LocalDate.now(z);
int dayOfYear = today.getDayOfYear();
Przejście w innym kierunku, od liczby do daty.
LocalDate ld = Year.of(2017).atDay(159) ;
Hej Mark, Ja również chciałabym to wiedzieć, ponieważ chcę, aby użyć go w programie astronomie pracuję nad i wolę to zrobić bezpośrednio w java i nie kodowanie to sam :) –
Ten dzień w roku (1-366) bardziej znany jako [* Data porządkowa *] (https://en.wikipedia.org/wiki/Ordinal_date). Użycie tutaj słowa "Julian" jest powszechne, ale jest, o ile wiem, nieprawidłowe. Najwyraźniej połączenie z [* Dniem Juliana *] (https://en.wikipedia.org/wiki/Julian_day), które jest liczbą całkowitą przypisaną całemu słonecznemu dniu w dniu juliańskim, liczy się od południa Czas uniwersalny, z dniem juliańskim numer 0 przypisany do dnia rozpoczynającego się w południe w dniu 1 stycznia 4713 rpne, kalendarz józefeptyczno-juliański (24 listopada 4714 r. p.n.e., w kalendarzu gremeńskim). Np .: 2000-01-01T12: 00: 00Z = 2,451,545. –