我能够从日期选择器中获取日期值:
override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) {
Log.i("onDateSet", year.toString())
Log.i("onDateSet", month.toString())
Log.i("onDateSet", dayOfMonth.toString())
}
如何将这个整数格式化为日期字符串,例如:2020-05-05
并且我看到该月份总是在一个月前返回,如果今天是第5个月,则是第4个月。是错误还是我的工作方式,我需要从日期选择器获得的每个月加1?
一个月由0到11之间的整数表示; 0是一月,1是二月,依此类推;因此11月是12月。
一个小时由0到23之间的整数表示。因此,从午夜到凌晨1点是0,而从中午到下午1点则是0。是12点。
分钟通常以0到59的整数表示。
秒以0到61之间的整数表示;值60和61仅出现leap秒。
日期和年份以通常的方式表示,而上述内容则以各自的规则表示。
如果它的五月,它将返回4,如果它的六月,将返回5,依此类推。
[[注意:尽管此行为似乎很奇怪,但它与java.util.Calendar类一致(尽管它与joda.time.DateTime不一致)。
month int: the selected month (0-11 for compatibility with Calendar#MONTH)
,是的,这是所需的行为,要将其格式化为人类可读的格式,我想必须添加1。为了格式化字符串,您可能应该手动连接您拥有的数据
val date = "$year-${month+1}-$day"
(对我来说最快的方法,但是您可以选择一些更漂亮的方法)或者您可以做:
val date = LocalDate(year,monthOfYear + 1,dayOfMonth).toString(“ yyyy-MM-dd”)