我有一個格式的日期串列:dd-MM-yyyy
val tripDates = [03-03-2022, 05-03-2002, 23-02-2022]
現在我需要將此串列映射為僅具有不可重復的日期格式:MM-yyyy
我試圖將其作為地圖進行:
val calendar = Calendar.getInstance()
val myFormat = "MM-yyyy"
val dateFormat = SimpleDateFormat(myFormat, Locale.US)
val formattedTrips = tripDates.map {
calendar.time = it
val month = calendar.get(Calendar.MONTH 1).toString()
val year = calendar.get(Calendar.YEAR).toString()
val monthAndYear = "$month-$year"
dateFormat.parse(monthAndYear)
}
但它不起作用。我無法制作新地圖。有任何想法嗎?
uj5u.com熱心網友回復:
如果我正確理解了您的問題,您想讀取日期(作為字串)并將它們輸出為另一種格式(作為字串)。
我們需要兩個格式化程式,一個將字串(以給定模式)轉換為日期,另一個將日期轉換回字串(以不同的模式)。
爪哇 7
import java.text.SimpleDateFormat
val fullDatePattern = "dd-MM-yyyy"
val monthYearPattern = "MM-yyyy"
val fullDateFormatter = SimpleDateFormat(fullDatePattern)
val monthYearFormatter = SimpleDateFormat(monthYearPattern)
val dates = listOf(
"03-03-2022",
"05-03-2002",
"23-02-2022",
)
dates.map { dateString ->
monthYearFormatter.format(fullDateFormatter.parse(dateString))
}
我認為值得一提的SimpleDateFormat是它不是執行緒安全的,所以要小心。
Java 8
import java.time.LocalDate
import java.time.format.DateTimeFormatter
val fullDatePattern = "dd-MM-yyyy"
val monthYearPattern = "MM-yyyy"
val fullDateFormatter = DateTimeFormatter.ofPattern(fullDatePattern)
val monthYearFormatter = DateTimeFormatter.ofPattern(monthYearPattern)
val dates = listOf(
"03-03-2022",
"05-03-2002",
"23-02-2022",
)
dates.map { dateString ->
LocalDate
.parse(dateString, fullDateFormatter)
.format(monthYearFormatter)
}
上述兩個示例的輸出:[03-2022, 03-2002, 02-2022]
如果要洗掉重復的日期,可以使用distinct函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/440844.html
上一篇:函式onDataChange()從上一個片段firebaseandroidkotlin呼叫
下一篇:在Kotlin中分層分組
