如何在我的 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 对象、适配器和视图持有者

如何在 Recyclerview 中显示图像 - Recyclerview 图像显示错误

我想在我的 recyclerview 中显示来自 URL 的图片 [重复]