String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
- 在 Android 开发中,上述代码出现如下的警告信息
To get local formatting use getDateInstance(), getDateTimeInstance(), or getTimeInstance(), or use new SimpleDateFormat(String template, Locale locale) with for example Locale. US for ASCII dates
# 解读
要获取本地化的日期格式,可使用 getDateInstance()、getDateTimeInstance() 或 getTimeInstance() 方法
或者使用 new SimpleDateFormat(String template, Locale locale) 并指定 Locale 参数
例如,Locale.US 用于生成 ASCII 风格的日期格式
问题原因
这个警告信息表示代码中没有显式指定 Locale,SimpleDateFormat 会使用系统默认的区域设置
在此情况下,应用程序运行在一些环境中,输出的格式可能会包含非 ASCII 字符
荐使用 Locale 敏感的工厂方法或指定 Locale 的 SimpleDateFormat 构造方法
特别说明了使用 Locale.US 可确保输出 ASCII 字符集的日期格式
处理策略
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date());
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
String timeStamp = SimpleDateFormat.getDateTimeInstance().format(new Date());






