` val current = Calendar.getInstance()
var mBirth = tv_birth.text.toString()
mBirth="1996-02-03"
LogUtils.w(mBirth)
if (mBirth.isBlank()) {
current[Calendar.YEAR] -= 24
} else {
current[Calendar.YEAR] = mBirth.substring(0, 4).toInt()
current[Calendar.MONTH] = mBirth.substring(5, 7).toInt() - 1
current[Calendar.DAY_OF_MONTH] = mBirth.substring(8, 10).toInt()
LogUtils.w(mBirth.substring(0, 4).toInt(),mBirth.substring(5, 7).toInt() - 1, mBirth.substring(8, 10).toInt())
}
val start = Calendar.getInstance()
start[Calendar.YEAR] -= 60
val end = Calendar.getInstance()
end[Calendar.YEAR] -= 18
val listener =
OnTimeSelectListener { date, _ ->
LogUtils.w(date)
mBirth = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).format(date)
tv_birth.text = mBirth
}
val picker = TimePickerBuilder(this, listener)
.setType(booleanArrayOf(true, true, true, false, false, false))
.setDate(current)
.setRangDate(start, end)
.setCancelText(getString(R.string.cancel))
.setSubmitText(getString(R.string.determine))
.setTitleSize(14)
.setContentTextSize(14)
.setSubCalSize(14)
.setLineSpacingMultiplier(2.75f)
.build()
picker.show()`
这样一段代码,在4.1.9版本上,日期会从16号开始(准确说是今天的日期),1-15丢失(改成2月以外的月份没有这问题,或者去掉range限制,也是正常的),4.1.8版本没有这问题
4条答案
按热度按时间aiqt4smr1#
我也遇到了这个问题,选择任意年份的二月份,例如2020-2-1日,设置选中日期后打开展示数据为2020-2-3日且列表没有1日和2日,所有日期都往后推了两天然后实际选择回调结果是前两天的日期
lstz6jyr2#
我也遇到了,setRangDate的同时setDate是二月的话,滚轮的天数会出现空白。。。
kuuvgm7e3#
setRangDate 在4.1.9版本,可以设置开始范围是日期指定是1号 可以规避以上问题;
如
val startDate = Calendar.getInstance() startDate.set(Calendar.DATE, 1)
xxslljrj4#
setRangDate 在4.1.9版本,可以设置开始范围是日期指定是1号 可以规避以上问题; 如
val startDate = Calendar.getInstance() startDate.set(Calendar.DATE, 1)
有效果,感谢