Mam ciąg „ 11/15/2013 08:00:00
”, chcę sformatować go na „ 11/15/2013
”, jaki jest prawidłowy DateTimeFormatter
wzór?
Próbowałem wielu i przejrzałem Google i wciąż nie mogę znaleźć prawidłowego wzoru.
edycja: Szukam Joda-Time DateTimeFormatter
, a nie Java SimpleDateFormat ..
java
jodatime
date-format
iCodeLikeImDrunk
źródło
źródło
Odpowiedzi:
Czas Jody
Utwórz za
DateTimeFormatter
pomocąDateTimeFormat.forPattern(String)
Wykorzystując czas Jody, zrobiłbyś to w następujący sposób:
Standardowa Java ≥ 8
Java 8 wprowadziła nową bibliotekę daty i godziny , która ułatwia zarządzanie datami i godzinami. Jeśli chcesz używać standardowej wersji Java 8 lub nowszej, użyj DateTimeFormatter . Ponieważ nie masz w sobie strefy czasowej
String
, java.time.LocalDateTime lub LocalDate , w przeciwnym razie można zastosować odmiany strefowe ZonedDateTime i ZonedDate .Standardowa Java <8
W wersjach wcześniejszych niż Java 8 należy używać SimpleDateFormat i java.util.Date
źródło
SimpleDateFormat
. Przeczytaj dokumentację API.Dodaję to tutaj, mimo że inne odpowiedzi są całkowicie do przyjęcia. JodaTime ma parsery wstępnie wbudowane w DateTimeFormat:
Oto większość opcji wydrukowanych wraz z ich formatem:
źródło
źródło
DateTime.now().toString("HH:mm:ss")
Myślę, że to zadziała, jeśli używasz JodaTime:
Dostałem część tego stąd .
źródło
D
jest to dzień roku, ale mój „link do dokumentacji” nie jest nieaktualny: dokumentacja, z którą się łączyłem, jest nieaktualna. Nie łączyłem się z dokumentacją dla samego siebie, prowadziłem do strony, z której otrzymałem trochę kodu, który okazuje się być nieaktualną dokumentacją.Mam bardzo głupią, ale działającą opcję. jeśli masz ciąg fullDate = "11/15/2013 08:00:00";
To powinno działać szybko i łatwo. :)
źródło
AKTUALIZACJA:
Możesz: stworzyć stałą:
Ten DateTimeFormat importuje z: (bądź ostrożny z tym)
Analizuj datę za pomocą:
Przed:
DateTime.parse („201711201515”, DateTimeFormat.forPattern („rrrrMMddGGmm”)). ToString („rrrrMMdd”);
jeśli chcesz datetime:
źródło
To działa
źródło
Innym sposobem na to jest:
Nie jestem do końca pewien, ale myślę, że może to być szybsze / zużywa mniej pamięci niż przy użyciu tej
.split()
metody.źródło