我正在尝试在Android上格式化日期,但遇到的地方是“无法解析日期”,但只针对某些语言环境。为每个区域设置尝试相同的日期。在英语中工作正常但在我将设备切换到DE时失败。
以下是我的代码:
Locale locale = mContext.getResources().getConfiguration().locale;
String dateStr = "07 Mar 2018";
SimpleDateFormat parser = new SimpleDateFormat("dd MMM yyyy", locale);
Date thedate = parser.parse(dateStr);
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM", locale);
String dateStrReformatted = formatter.format(thedate);
我已尝试指定当前的Locale但这没有效果。谁能告诉我我做错了什么?
答案 0 :(得分:1)
问题是您正在尝试解析始终使用英语的date
String dateStr = "07 Mar 2018";
因此,在解析时,您可以使用英语作为区域设置来获取date
并使用您的首选语言对其进行格式化
String dateStr = "07 Mar 2018";
SimpleDateFormat parser = new SimpleDateFormat("dd MMM yyyy", Locale.ENGLISH);
Date englishDate = parser.parse(dateStr);
要获取上述string
使用
date
Locale locale = mContext.getResources().getConfiguration().locale;
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM", locale);
String dateStrReformatted = formatter.format(englishDate);