我試圖在一個文本視圖中顯示本地日期(即2021年9月14日星期二),但我很難找到一種方法來做到這一點。 有什么提示或想法嗎?
uj5u.com熱心網友回復:
你可以使用SimpleDateFormat類來格式化日期。
為了實作你在問題中指定的格式,請使用這個:
textView.text = SimpleDateFormat("EEE, MMMM dd, yyyy").format(Date()
要了解不同日期和時間模式的含義,請查看這個鏈接。
uj5u.com熱心網友回復:
試試這個代碼吧
val sdf = SimpleDateFormat("EEe, MMMM dd, yyyy")
val current = sdf.format(Date() )
textView.text = "$current"。
uj5u.com熱心網友回復:
謝謝大家!
解決方案1:
val dateDisplay: TextView = findViewById(R.id.date)
dateDisplay.text = SimpleDateFormat("EEE, MMMM dd, yyyy").format(Date() )
解決方案2:
val sdf = SimpleDateFormat("EEE, MMMM dd, yyyy")
val current = sdf.format(Date() )
val dateDisplay: TextView = findViewById(R.id.date)
dateDisplay.text = "$current"
uj5u.com熱心網友回復:
java.time和一個內置的本地化格式
考慮使用java.time,現代的Java日期和時間API,來完成你的日期作業。請原諒我的Java語法。宣告一個格式器:
private static final DateTimeFormatter DATE_FORMATTER
= DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL).withLocale(Locale.US)。
象這樣使用:
LocalDate today = LocalDate.now(ZoneId.systemDefault())。
String text = today.format(DATE_FORMATTER);
System.out.println(text)。
當運行today時,輸出結果是:
2021年9月15日,星期三
。現在,按照其他答案中的描述,將這個文本分配到你的TextView中。
您不僅希望避免使用麻煩的SimpleDateFormat類,您還希望避免撰寫您自己的格式模式字串,因為這很容易出錯。而你的愿望與你的用戶希望看到以適當的格式列印日期的愿望很好地結合起來。在上面的代碼中,我使用了Local.US作為示范。在真正的代碼中,你會希望省去這一部分。然后,格式化器將采用設備的默認區域設定,所有區域的用戶都會感到高興。就像這樣:
private static final DateTimeFormatter DATE_FORMATTER
= DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)。
問題。java.time不是需要Android API級別26嗎?
java.time在較舊和較新的Android設備上都能很好地作業。它只是要求至少有Java 6。
- 在 Java 8 和更高版本中
- 在 Java 8 及以后的版本中,以及在較新的 Android 設備上(從 API 26 級開始),現代 API 已內置。
- 在非 Android 的 Java 6 和 7 中使用 ThreeTen Backport,即現代類的 Backport(JSR 310 的 ThreeTen;見底部的鏈接)。
- 在舊版 Android 上,要么使用 desugaring,要么使用 ThreeTen Backport 的 Android 版本。它被稱為ThreeTenABP。在后一種情況下,請確保你從
org.threeten.bp的子包中匯入日期和時間類。
鏈接
java.time被首次描述。java.time 回傳到 Java 6 和 7(ThreeTen for JSR-310)。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/311909.html
標籤:
