Znam formaty daty, takie jak
"yyyy-mm-dd"
-który wyświetla datę w formacie 2011-02-26
"yyyy-MMM-dd"
-który wyświetla datę w formacie2011-FEB-26
do wykorzystania np .:
SimpleDateFormat formatter = new SimpleDateFormat(
"yyyy/MMM/dd ");
Potrzebuję formatu, który pomógłby mi wyświetlić dzień tygodnia 2011-02-MON
lub cokolwiek. Chcę tylko, aby dzień tygodnia był wyświetlany w postaci znaków z miesiącem i rokiem. Czy możesz mi opowiedzieć o takim formacie?
java
date
simpledateformat
date-formatting
rogerstone
źródło
źródło
dd
jako formatu?-
notacji tylko z datami w formacie ISO (np. Rok-miesiąc-dzień). Kreska została tam wybrana, ponieważ nie była wtedy używana w żadnym innym formacie daty, aby uniknąć nieporozumień, a teraz wszyscy używają jego niestandardowej kolejności z myślnikiem ...Odpowiedzi:
Powinno to wyświetlić „Wt”:
Powinno to wyświetlić „wtorek”:
Powinno to wyświetlić „T”:
Twój konkretny przykład to:
źródło
new SimpleDateFormat("EEEE, dd/MM/yyyy");
jeśli to pomoże komuś w przyszłości.EEEE
wyświetla pełne nazwy dni tygodnia - np. „poniedziałek”, „wtorek” itp.Tak - „E” załatwia sprawę
http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
źródło
DateFormat df = new SimpleDateFormat("yyyy-MM-EEEEEEE");
do wyświetlania długiego DayOfWeek.EEE oznacza dzień tygodnia, na przykład czwartek jest wyświetlany jako czw.
źródło
Widzisz"
Zobacz sekcję dotyczącą wzorców dat i godzin :
JavaDocs dla SimpleDateFormat
źródło
tl; dr
java.time
Nowoczesne podejście wykorzystuje klasy java.time.
Zwróć uwagę, jak określamy, na
Locale
przykład,Locale.CANADA_FRENCH
aby określić ludzki język używany do tłumaczenia nazwy dnia.ISO 8601
Nawiasem mówiąc, może być zainteresowany w normie ISO 8601 tygodni schematu numeracji:
yyyy-Www-d
.Tydzień # 1 to pierwszy czwartek roku kalendarzowego. Tydzień zaczyna się w poniedziałek. Rok ma 52 lub 53 tygodnie. Ostatnie / pierwsze dni roku kalendarzowego mogą wylądować w kolejnym / poprzednim roku tygodniowym.
Pojedyncza cyfra na końcu to dzień tygodnia, 1-7 od poniedziałku do niedzieli.
Dodaj klasę biblioteki ThreeTen-Extra do projektu dla
YearWeek
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 .
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
Wiem, że pytanie dotyczy podania dnia tygodnia jako ciągu (np. Krótkiej nazwy), ale dla każdego, kto szuka numerycznego dnia tygodnia (tak jak ja), możesz użyć nowego ciągu formatu "u", obsługiwanego od wersji Java 7. Na przykład:
zwraca dzisiejszy indeks dnia tygodnia, a mianowicie: 1 = poniedziałek, 2 = wtorek, ..., 7 = niedziela.
źródło