Modern cevabı veriyorum.
java.time ve ThreeTenABP
Geçerli tarihi almak için:
LocalDate today = LocalDate.now(ZoneId.of("America/Hermosillo"));
Bu size bir LocalDate
nesne verir , bu da programınızda bir tarih tutmak için kullanmanız gereken şeydir. A LocalDate
, günün saati olmayan bir tarihtir.
Yalnızca tarihi bir kullanıcıya görüntülemeniz gerektiğinde, kullanıcının yerel ayarına uygun bir dizeye biçimlendirin:
DateTimeFormatter userFormatter
= DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG);
System.out.println(today.format(userFormatter));
Bu snippet'i bugün ABD İngilizcesi'nde çalıştırdığımda çıktı:
13 Temmuz 2019
Daha kısa olmasını istiyorsanız, FormatStyle.MEDIUM
hatta belirtin FormatStyle.SHORT
. DateTimeFormatter.ofLocalizedDate
varsayılan biçimlendirme yerel ayarını kullanır, bu nedenle önemli olan, farklı yerel ayarlar için farklı, bu yerel ayar için uygun çıktılar vermesidir.
Kullanıcınızın çıktı biçimi için çok özel gereksinimleri varsa, bir biçim deseni dizesi kullanın:
DateTimeFormatter userFormatter = DateTimeFormatter.ofPattern(
"d-MMM-u", Locale.forLanguageTag("ar-AE"));
13-يول -2019
Java Java, modern Java tarih ve saat API'sini kullanıyorum ve tavsiye ediyorum. DateFormat
, SimpleDateFormat
, Date
Ve Calendar
söz konusu kullanılan ve / veya diğer cevapların birçoğu, kötü tasarlanmış ve uzun modası geçmiş edilir. Ve java.time ile çalışmak çok daha güzel.
Soru: Android'de java.time kullanabilir miyim?
Evet, java.time eski ve yeni Android cihazlarda güzel çalışıyor. Sadece en az Java 6 gerektirir .
- Java 8 ve sonraki sürümlerde ve daha yeni Android cihazlarda (API düzey 26'dan) modern API yerleşik olarak gelir.
- Java 6 ve 7'de modern sınıfların arka havuzu olan ThreeTen Backport'u edinin (JSR 310 için ThreeTen; alttaki bağlantılara bakın).
- (Daha eski) Android cihazlarında ThreeTen Backport'un Android sürümünü kullanın. Buna ThreeTenABP deniyor. Ve tarih ve saat sınıflarını
org.threeten.bp
alt paketlerle aldığınızdan emin olun .
Bağlantılar
DateFormat
bu soru 2011 yılında sorulduğunda sınıf Tamam oldu, o sınıf ve alt sınıfSimpleDateFormat
her zaman zahmetli ve şimdi uzun güncelliğini yitirmiş durumda. Bunları kullanmamanızı ve bunun yerine modern Java tarih ve saat API'sini java.time'a bakmanızı öneririm .