您好,请帮帮我,我遇到了很多问题,但没有得到解决。 代码
String localDate1="Miércoles, 04 Octubre 2017 12:00 PM";
Locale spanishLocale=new Locale("es", "ES");
SimpleDateFormat spanishLocale1=new SimpleDateFormat(getString(R.string.jom_events_date_input_format_12_hrs),spanishLocale);
String dateInSpanish=spanishLocale1.parse(localDate1).toString();
Log.v("@@@WWW","in Spanish: "+dateInSpanish);
错误
java.text.ParseException: Unparseable date: "Miércoles, 04 Octubre 2017 12:00 PM" (at offset 33)
最佳答案
仅供记录:
幸运的是,您已经发布了指向偏移量 33 的错误消息(即输入中“PM”的位置)。所以我们可以说:
您的问题与设备相关的本地化数据(或操作系统相关)有关,这里是 AM/PM 的西类牙语表示的具体数据。在旧版本的 CLDR-unicode 存储库(作为许多 Java、C# 或 Android 发行版的公共(public)源的行业标准)中,使用数据“AM”和“PM”,但在较新的版本中,它使用“a.m”。或“下午”西类牙语。
因此,如果要解析的输入(包含“PM”)与您拥有的真实 i18n 数据不匹配,我建议作为实用的解决方案字符串预处理:
String input = "Miércoles, 04 Octubre 2017 12:00 PM";
input = input.replace("PM", "p. m.");
// now parse your input with Spanish locale and the appropriate pattern
关于java - 解析西类牙语日期错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46335911/