很奇怪。我知道。这是执行代码。
[执行timePickerDialog
之前,我执行了datePickerDialog
,它填充了c[Calendar.YEAR]
,c[Calendar.MONTH]
,c[Calendar.DAY_OF_MONTH]
,但是该代码是意大利面条,可能与之无关。如果需要,我会附上。
val timePickerDialog = TimePickerDialog(context, { _, hour, minute ->
c[Calendar.HOUR] = hour
c[Calendar.MINUTE] = minute
formattedDateTime =
if (DateFormat.is24HourFormat(context)) {
Toast.makeText(context, "Chose '24 hour' clause", Toast.LENGTH_SHORT)
.show()
SimpleDateFormat("dd MMM, yyyy 'at' HH:mm", Locale.getDefault()).format(c.time)
} else {
Toast.makeText(context, "Chose '12 hour' clause", Toast.LENGTH_SHORT).show()
SimpleDateFormat("dd MMM, yyyy 'at' hh:mm aa", Locale.getDefault()).format(c.time)
}
it.txtGreetingTime.text = formattedDateTime
}, c[Calendar.HOUR], c[Calendar.MINUTE], DateFormat.is24HourFormat(context))
一旦选择了时间和日期,然后再次执行相同的操作,先前的输出文本将与此输出文本不同。
请注意,用户设置为24小时格式。
第一次这样做:
这是第一次执行后的外观(忽略突出显示的“人”,即联系人的搜索机制的实现):
然后,再次做同样的事情(我发誓这是我第二次这样做,可能看起来一样):
但是这是什么怪物?!
祝酒者确认我都输入了24小时if-clause,所以我认为选择正确的日期格式是可以的。 (还请注意,如果格式为12小时,则AM / PM会按照代码提示在此处,但在输出中不存在)。
我不知道这怎么可能发生。 SimpleDateFormat
会在使用前实例化,因此无法在其他任何地方弄乱它,因此我认为它不是来自datePickerDialog
。
任何线索/建议/想法?