Jak przekonwertować aktualną datę na ciąg znaków w Javie?
java
string
date
formatting
user354299
źródło
źródło
Zaczerpnięte stąd
źródło
Calendar
bardziej pożądane niżDate
?źródło
Użyj
DateFormat
implementacji; npSimpleDateFormat
.źródło
tl; dr
Lepiej jest jawnie określić żądaną / oczekiwaną strefę czasową.
java.time
Nowoczesnym sposobem, począwszy od Java 8 i późniejszych, jest framework java.time .
Określ strefę czasową, ponieważ data zmienia się w dowolnym momencie na całym świecie.
Domyślnie otrzymujesz ciąg w standardowym formacie ISO 8601 .
W przypadku innych formatów użyj
java.time.format.DateTimeFormatter
klasy.Informacje o java.time
Struktura java.time jest wbudowana w Javę 8 i nowsze. Klasy te kłopotliwe zastąpić stary starszych klas Date-Time, takich jak
java.util.Date
,Calendar
, iSimpleDateFormat
.Projekt Joda-Time , obecnie w trybie konserwacji , zaleca migrację do klas java.time .
Aby dowiedzieć się więcej, zobacz samouczek Oracle . I przeszukaj Stack Overflow, aby znaleźć wiele przykładów i wyjaśnień. Specyfikacja to JSR 310 .
Możesz wymieniać obiekty java.time bezpośrednio ze swoją bazą danych. Użyj sterownika JDBC zgodnego z JDBC 4.2 lub nowszym. Nie ma potrzeby stosowania ciągów ani
java.sql.*
klas.Skąd wziąć klasy java.time?
Projekt ThreeTen-Extra rozszerza java.time o dodatkowe klasy. Ten projekt jest poligonem doświadczalnym dla ewentualnych przyszłych dodatków do java.time. Można znaleźć kilka przydatnych klas tutaj takie jak
Interval
,YearWeek
,YearQuarter
, i więcej .źródło
Szybciej :
źródło
Na czas w formacie RRRR-MM-dd
Biblioteka DateTime to:
import org.joda.time.DateTime;
źródło
DateTime
? Odpowiedź na przepełnienie stosu powinna zawierać pewne wyjaśnienie, ponieważ ta witryna ma być czymś więcej niż biblioteką fragmentów.Większość odpowiedzi jest / była poprawna. Nowa modyfikacja API JAVA do obsługi dat zapewniła, że niektóre wcześniejsze niejasności w obsłudze dat w Javie zostały zredukowane.
W przypadku podobnych połączeń otrzymasz przestarzały komunikat.
Powyższe wywołanie spowodowało, że programista założył, że nowy obiekt Date da obiekt Date z aktualnym znacznikiem czasu. To zachowanie nie jest spójne w innych klasach interfejsu API języka Java.
Nowym sposobem na to jest użycie wystąpienia kalendarza .
Tutaj również konwencja nazewnictwa nie jest doskonała, ale jest bardzo zorganizowana. Dla osoby takiej jak ja, która ma trudności z kradzieżą rzeczy, ale nigdy by czegoś nie zapomniała, jeśli brzmi / wydaje się logiczne, jest to dobre podejście.
To jest bardziej synonimem prawdziwego życia
Jeszcze jednym sposobem jest użycie interfejsu API czasu Joda
lub bardziej oczywiste
oba zwrócą ten sam wynik.
źródło
java.util.Date
,java.util.Calendar
ijava.text.SimpleTextFormat
są teraz spuścizny , wyparta przez java.time klas. Ponadto projekt Joda-Time jest teraz w trybie konserwacji , a zespół zaleca migrację do java.time.Clock
implementacja w Javie 8 jest dokładnie taka sama, jak w starszych klasach. Dopiero w Javie 9 pojawia się nowa implementacja, zdolna do przechwytywania aktualnego momentu z rozdzielczością rzędu nanosekund.źródło
String
formacie do swojej funkcji.