You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用SimpleDateFormat解析日期部分设备崩溃求助

日期解析在部分Android设备崩溃的原因及解决办法

崩溃原因

问题核心是区域设置(Locale)不匹配:

  • SimpleDateFormat默认采用设备系统的Locale,当设备系统语言非英文时(比如中文、法语、德语等),日期字符串里的英文月份缩写"Sep"无法被识别——非英文Locale下的月份缩写是对应语言的格式(例如中文是"9月",法语是"sept"),因此触发ParseException。

解决方案

1. 修复原有SimpleDateFormat代码

给SimpleDateFormat明确指定英文Locale,强制按英文规则解析日期:

var format = SimpleDateFormat("dd MMM, yyyy", Locale.ENGLISH)
var date2 = format.parse("1 Sep, 2022")

2. 推荐使用现代日期API(更安全可靠)

SimpleDateFormat存在线程不安全、设计缺陷多等问题,推荐使用Java 8引入的java.time系列API(Android 8.0+直接支持,低版本可通过AndroidX兼容):

import java.time.LocalDate
import java.time.format.DateTimeFormatter
import java.util.Locale

val formatter = DateTimeFormatter.ofPattern("dd MMM, yyyy", Locale.ENGLISH)
val date2 = LocalDate.parse("1 Sep, 2022", formatter)

若需兼容Android 7.0及以下,在Module级别的build.gradle中添加AndroidX依赖:

implementation "androidx.core:core-ktx:1.12.0"

内容的提问来源于stack exchange,提问作者Dheeraj Singh Bhadoria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 23:18:33