And*_*Res 5 datetime android kotlin
尝试使用DateUtils.getRelativeTimeSpanString(...)某些特定值时遇到一个相当奇怪的问题。
我正在这样使用它:
private fun formatPubDate(pubDate: String): String {
   val dateFormat = SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH)
   val date = dateFormat.parse(pubDate)
   val flags = DateUtils.FORMAT_SHOW_DATE or DateUtils.FORMAT_SHOW_TIME or DateUtils.FORMAT_SHOW_YEAR or DateUtils.FORMAT_ABBREV_MONTH
   return DateUtils.getRelativeTimeSpanString(date.time, System.currentTimeMillis(),
                DateUtils.MINUTE_IN_MILLIS, flags).toString()
}
为什么奇怪?由于以下代码可以正常工作,因此请在“ 6天前 ” 打印到控制台:
Log.d("DATE_TAG", formatPubDate("Fri, 09 Jul 2018 07:04:05 +0000"))
但是,如果日期从7月9日更改为7月8日,则:
Log.d("DATE_TAG", formatPubDate("Fri, 08 Jul 2018 07:04:05 +0000"))
然后该应用程序崩溃,但出现以下异常:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.ContentResolver android.content.Context.getContentResolver()' on a null object reference
        at android.text.format.DateFormat.is24HourFormat(DateFormat.java:131)
        at android.text.format.DateUtils.formatDateRange(DateUtils.java:822)
        at android.text.format.DateUtils.formatDateRange(DateUtils.java:650)
        at android.text.format.DateUtils.formatDateRange(DateUtils.java:627)
        at android.text.format.DateUtils.getRelativeTimeSpanString(DateUtils.java:350)
        at test.com.recyclerviewwidth.MainActivity.formatPubDate(MainActivity.kt:26)
        at test.com.recyclerviewwidth.MainActivity.onCreate(MainActivity.kt:18)
到目前为止,该问题仅在Android 5,三星设备和仿真器上可重现(在Android 8和7上运行正常)。
有谁知道这里可能有什么问题吗?
问题来自于 FORMAT_SHOW_TIME 标志:我在这里有相同的 pb,并通过捕获异常并再次调用不带 FORMAT_SHOW_TIME 标志的DateUtil 方法以一种有点肮脏的方式修复它。
| 归档时间: | 
 | 
| 查看次数: | 173 次 | 
| 最近记录: |