java - 如果 API 中的日期大于、小于或等于 Kotlin 中的当前日期,如何将当前日期与 API 中的日期进行比较以显示不同的 ImageView
问题描述
我根据用户发布到 API 的内容从 API 获取日期
如果来自 API 的日期大于、小于或等于当前日期,我在这里尝试做的是显示不同的 ImageView
我有这个绑定功能:
fun bind(event: PlannerGet) {
val stringzz = event.date
val date = LocalDate.parse(stringzz, DateTimeFormatter.ISO_DATE)
val dateFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("dd-MMM-uuuu")
val sdf = SimpleDateFormat("dd-MMM-yyyy")
val c = Calendar.getInstance()
try {
c.time = sdf.parse(currentDate("dd-MMM-yyyy"))
} catch (e: ParseException) {
e.printStackTrace()
}
val _date: String = sdf.format(c.time)
val gregorianDate: LocalDate = LocalDate.parse(_date, dateFormatter)
val islamicDate: HijrahDate = HijrahDate.from(date)
mTextHijri.text = islamicDate.format(dateFormatter).toString()
mTextNote.text = "${event.note}"
mTextTitle.text = "${event.title} at ${event.location}"
mTextIndex.text = "${getTime(event.startTime!!)} - ${getTime(event.endTime!!)}"
mTextDate.text = (date.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)))
mTextTimeEstimated.text = getEstimated(getTime(event.startTime), getTime(event.endTime))
}
它工作正常,我尝试将 if 条件添加到函数中,如下所示:
if(mTextDate.toString() < _date){
mTick.setImageResource(R.drawable.tick)
}
else if (mTextDate.toString() > _date){
mTick.setImageResource(R.drawable.ic_logopng)
}
else if (mTextDate.toString() == _date){
mTick.setImageResource(R.drawable.blue_logo)
}
我已经在 API 中发布了 3 个不同的日期进行比较,但我每次都得到相同的 ImageView,我在这里做错了什么?
我还尝试直接从数据类(下面的数据类)进行比较:
data class PlannerGet(
val date: String,
val endTime: String,
val id: Int,
val location: String,
val note: String,
val startTime: String,
val title: String
)
但我每次都得到相同的 ImageView
有什么建议可以完成这项工作吗?
更新:
我尝试将日志用作评论中提到的“Akhil”,
所以我想像这样比较两个时间戳:
var currentDateTime=LocalDateTime.now()
var time= currentDateTime.format(DateTimeFormatter.ofPattern("HH:mm"))
Log.d("Time", time)
if(event.startTime > time){
mTextTimeEstimated.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.tick_ongoing_very_small, 0);
}
else if (event.startTime < time){
mTextTimeEstimated.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.tick_upcoming_very_small, 0);
}
else if (event.startTime < time) {
mTextTimeEstimated.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.tick_completed_very_small, 0);
}
日志如下:
D/Time: 17:23
D/event time: 18:19
D/Time: 17:23
D/event time: 08:36
D/Time: 17:23
D/event time: 05:37
D/Time: 17:23
D/event time: 04:38
但仍然得到一个值,即:
event.startTime > time
解决方案
推荐阅读
- entity-framework - 部分初始化域实体
- kubernetes - RBAC kubectl 添加/修补现有角色绑定
- swift - 为所选模型快速保留复选标记
- java - 当 getErrorPath() 返回“/error”以外的路径时,自定义错误页面不起作用
- opencv - 如何将未扭曲图像的点投影到扭曲图像?
- phpword - 服务器上的 TemplateProcessor 错误 500 但不是本地
- php - 保护 Oracle 数据库免受 SQL 注入
- vim - 如何在 vim/neovim 的一个快捷方式中组合几个命令?
- python-3.x - Bitbake:数据存储是什么数据结构?
- php - 无法安装 php 扩展 mcrypt