在android中使用Kotlin以周日格式开始一周
我在日历日期上工作,我从下面的方法中得出每周7天的值。但我只需要从周日开始一周的工作在android中使用Kotlin以周日格式开始一周,android,date,datetime,kotlin,Android,Date,Datetime,Kotlin,我在日历日期上工作,我从下面的方法中得出每周7天的值。但我只需要从周日开始一周的工作 fun getWeekDay(): Array<String?>? { weekDaysCount-- val now1 = Calendar.getInstance() now1.set(2021, 1, 29) val now = now1.clone() as Calendar val format = Simp
fun getWeekDay(): Array<String?>? {
weekDaysCount--
val now1 = Calendar.getInstance()
now1.set(2021, 1, 29)
val now = now1.clone() as Calendar
val format = SimpleDateFormat("yyyy-MM-dd")
val days = arrayOfNulls<String>(7)
val delta = -now[GregorianCalendar.DAY_OF_WEEK] + 1
now.add(Calendar.WEEK_OF_YEAR, weekDaysCount)
now.add(Calendar.DAY_OF_MONTH, delta)
for (i in 0..6) {
days[i] = format.format(now.time)
now.add(Calendar.DAY_OF_MONTH, 1)
}
return days
}
使用Java8的日期/时间库(
Java.time
)而不是Calendar
,您想要实现的目标要容易得多
import java.time.DayOfWeek
import java.time.LocalDate
import java.time.format.DateTimeFormatter
import java.time.temporal.TemporalAdjusters
fun getWeekDay(): Array<String?> {
var date = LocalDate.of(2021, 1, 29)
date = date.with(TemporalAdjusters.previousOrSame(DayOfWeek.SUNDAY))
val formatter = DateTimeFormatter.ofPattern("dd (EEE)")
val days = arrayOfNulls<String>(7)
for (i in 0 until 7) {
days[i] = formatter.format(date)
date = date.plusDays(1)
}
return days
}
以下是编译选项:
android {
...
compileOptions {
coreLibraryDesugaringEnabled true
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
...
现在,您将能够使用许多Java8特性和库
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.1'
android {
...
compileOptions {
coreLibraryDesugaringEnabled true
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
...