如何在我的 recyclerview 适配器中将 API 日期转换为 Kotlin 中的字符串?
Posted
技术标签:
【中文标题】如何在我的 recyclerview 适配器中将 API 日期转换为 Kotlin 中的字符串?【英文标题】:How to convert API date to string in Kotlin within my recyclerview adapter? 【发布时间】:2022-01-04 11:10:30 【问题描述】:我需要像这样将 API 日期从 (yyyy-MM-dd HH:mm:ss) 格式转换为 (oct 18)
@Throws(ParseException::class)
private fun getFormate(date: String): String?
val d: Date = SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.ENGLISH).parse(date)
//Log.d("Date", String.valueOf(d));
val cal = Calendar.getInstance()
cal.time = d
return SimpleDateFormat("MMM dd").format(cal.time)
inside of onBindViewHolder
val thisModelResponse: ExpiryData = expiryList.get(position)
holder.expiryDate1.text = getFormate(thisModelResponse.getCreatedDate())
holder.expiryDate1.text = (expiryItem.expiryDate)
但我在 getCreatedDate() 中收到错误未解决的引用
【问题讨论】:
docs.oracle.com/javase/7/docs/api/java/text/… 考虑扔掉早已过时且臭名昭著的麻烦SimpleDateFormat
和像Calendar
这样的朋友。看看您是否可以使用 desugaring 或将 ThreeTenABP 添加到您的 android 项目中,以便使用现代 Java 日期和时间 API java.time。使用起来感觉好多了。
请向我们展示您认为已声明和实现getCreatedDate()
的代码。最好的create a Minimal, Reproducible Example。
另外getCreatedDate()
应该可能返回一个Instant
或另一个定义时间点的对象。不是String
。提供数字和布尔值的方法也不返回字符串,是吗?
【参考方案1】:
要从字符串转换日期,返回一个新的解析日期,您必须这样做:
val inputDate = "2018-10-18 11:00:00"
val inputDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
val outputDate = inputDateFormat.parse(inputDate)
val outputDateFormat = SimpleDateFormat("MMM dd")
val result : String = outputDateFormat.format(outputDate)
结果将是“10 月 18 日”
【讨论】:
以上是关于如何在我的 recyclerview 适配器中将 API 日期转换为 Kotlin 中的字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 recyclerview 适配器中将动态视图添加到 android 布局
在我的 recyclerview 适配器类中实现 Android 底页
ANDROID 如何通过适配器将 mutableLiveData 绑定到我的 Recyclerview
如何重用 RecyclerView 对象、适配器和视图持有者