Napisałem następujący kod
Date d = new Date();
CharSequence s = DateFormat.format("MMMM d, yyyy ", d.getTime());
Ale pyta mnie o parametr, chcę aktualną datę w formacie ciągu,
lubić
28-Dec-2011
tak że można ustawić na TextView
,
wyjaśnij trochę, jeśli uważasz, że coś jest konieczne, jestem nowy w programowaniu na Androida.
android
date
simpledateformat
android-date
Chatar Veer Suthar
źródło
źródło
DateFormat
klasy było OK, gdy zadawano to pytanie w 2011 r., Klasa ta i jej podklasaSimpleDateFormat
zawsze były kłopotliwe i są teraz dawno nieaktualne. Nie radzę ich używać i zamiast tego zajrzeć do java.time, nowoczesnego API daty i czasu w Javie .Odpowiedzi:
Możesz użyć
SimpleDateFormat
klasy do sformatowania daty w wybranym formacie.Po prostu sprawdź ten link, gdzie masz pomysł na swój przykład.
Na przykład:
Aktualizacja:
Szczegółowy przykład znajduje się tutaj , sugeruję, abyś przejrzał ten przykład i zrozumiał pojęcie klasy SimpleDateFormat.
Ostateczne rozwiązanie:
źródło
java.util.Date
,java.util.Calendar
ijava.text.SimpleDateFormat
są teraz starsze , zastąpione przez klasy java.time wbudowane w Javę 8 i nowsze. Zobacz samouczek firmy Oracle .Jest to prosty, jednowierszowy kod do pobierania aktualnej daty w formacie rrrr-MM-dd , którego możesz użyć w wybranym przez siebie formacie:
źródło
Nie ma to nic wspólnego z Androidem, ponieważ jest oparty na Javie, więc możesz użyć
źródło
źródło
Spróbuj tego,
źródło
Najpierw potrzebujesz instancji
źródło
Działa jak urok i jako bonus konwertuje na String;)
źródło
// importuj klasę Date jako java.util
źródło
Poniższy kod wyświetla godzinę i datę
źródło
źródło
Udzielam nowoczesnej odpowiedzi.
java.time i ThreeTenABP
Aby uzyskać aktualną datę:
Daje ci to
LocalDate
obiekt, którego powinieneś używać do przechowywania daty w programie. ALocalDate
to data bez godziny.Tylko wtedy, gdy musisz wyświetlić datę użytkownikowi, sformatuj ją w ciągu odpowiednim dla ustawień regionalnych użytkownika:
Kiedy uruchomiłem dzisiaj ten fragment kodu w ustawieniach regionalnych w języku angielskim (USA), wynik był następujący:
Jeśli chcesz, żeby był krótszy, określ
FormatStyle.MEDIUM
lub nawetFormatStyle.SHORT
.DateTimeFormatter.ofLocalizedDate
używa domyślnych ustawień regionalnych formatowania, więc chodzi o to, że da wynik odpowiedni dla tego ustawienia narodowego, różny dla różnych ustawień regionalnych.Jeśli użytkownik ma bardzo specjalne wymagania dotyczące formatu wyjściowego, użyj łańcucha wzorca formatu:
Używam i polecam java.time, nowoczesny API daty i czasu Java.
DateFormat
,SimpleDateFormat
,Date
ICalendar
używane w pytaniu i / lub wiele innych odpowiedzi, są źle zaprojektowane i dawno nieaktualne. Praca z java.time jest o wiele przyjemniejsza.Pytanie: Czy mogę używać java.time na Androidzie?
Tak, java.time działa dobrze na starszych i nowszych urządzeniach z Androidem. Wymaga tylko co najmniej Javy 6 .
org.threeten.bp
z podpakietami.Spinki do mankietów
java.time
zostało po raz pierwszy opisane.java.time
Java 6 i 7 (ThreeTen dla JSR-310).źródło
DateTimeUtils.toDate(yourLocalDateTime.atZone(ZoneId.systemDefault()).toInstant())
. W przypadku korzystania z wbudowanej java.time:Date.from(yourLocalDateTime.atZone(ZoneId.systemDefault()).toInstant())
. Zobacz Konwersja między java.time.LocalDateTime a java.util.Date . Jest tam autorytatywna odpowiedź JodaStephena, a także odpowiedź pokazująca użycie backportu .źródło
28-Dec-2011
), Czego nie ma w innych odpowiedziach? W każdym razie nadal używa notorycznie kłopotliwej i dawno przestarzałejSimpleDateFormat
klasy. Proszę, nie potrzebujemy więcej odpowiedzi, aby to zrobić.źródło
Prosta poprawka do rozwiązania Paresha:
źródło
źródło
Możesz użyć następującego kodu, aby uzyskać datę w wybranym formacie.
źródło
To jest najlepsza odpowiedź ...
źródło
Najprostszy sposób, aby uzyskać aktualną datę w bieżących lokalizacjach (ustawienia regionalne urządzenia!):
Jeśli chcesz mieć datę w różnych stylach użyj
getDateInstance(int style)
:Inne style:
DateFormat.LONG
,DateFormat.DATE_FIELD
,DateFormat.DAY_OF_YEAR_FIELD
, itd. (Wykorzystanie CTRL+Spacezobaczyć wszystkie z nich)Jeśli też potrzebujesz czasu:
źródło
źródło
spróbuj z tym linkiem do kodu, to jest absolutnie poprawna odpowiedź dla wszystkich przypadków we wszystkich datach i godzinach. lub dostosuj datę i godzinę zgodnie z potrzebami i wymaganiami aplikacji.
spróbuj z tym linkiem. spróbuj z tym linkiem
źródło
Napisałem aplikację kalendarza przy użyciu CalendarView i to mój kod:
Pole kalendarza to mój widok kalendarza. Import:
Mam aktualną datę bez błędów.
źródło
Oto kod, którego użyłem:
źródło
Użyłem już tego:
najpierw dostaję czas, potem zadeklarowałem prosty format daty (aby uzyskać datę: 19-6-2018), a następnie używam formatu, aby zmienić datę na ciąg.
źródło
tylko jeden kod liniowy, aby uzyskać prosty format daty:
wyjście: 18-maj-2020
wyjście: 18-maj-2020 11:00:39
wyjście: 11:00:39
Mam nadzieję, że ta odpowiedź wystarczy, aby uzyskać ten format daty i czasu ... :)
źródło
SimpleDateFormat
iDateFormat
klas. Przynajmniej nie jako pierwsza opcja. I nie bez zastrzeżeń. Dziś mamy o wiele lepszejava.time
, nowoczesne API daty i czasu w Javie i jegoDateTimeFormatter
. Tak, możesz go używać na Androidzie. W przypadku starszego Androida zobacz Jak używać ThreeTenABP w Android Project .Oto kod, którego użyłem :
źródło