java - Android 上的日期格式 : Unparseable date

标签 java android date date-format

我正在开发一个从字符串中提取日期并将其转换为日期的函数。 日期格式如下:

dd-mmm-yyyy

其中 mmm 是月份的 3 位数字名称,全部小写。

代码 fragment 如下:

if(queryLine.contains("Expiration Date:")){
String expString = queryLine.replace("Expiration Date:", "").trim();
DateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
try {
    log.info("Exp: " + queryLine.replace("Expiration Date:", "").trim());
    expDate = df.parse(expString);
} catch (ParseException e) {                         
    e.printStackTrace();
}                   

如果我在计算机 jvm 上尝试该代码,它工作正常并且可以毫无问题地转换日期,但是如果我尝试在 android 上运行它,我会遇到以下错误:

java.text.ParseException: Unparseable date: "14-sep-2020"
     at org.whoislibrary.servers.WhoisCom.parseResponse(WhoisCom.java:39)
     at java.text.DateFormat.parse(DateFormat.java:626)
     at org.whoislibrary.WhoisAbstract.executeQuery(WhoisAbstract.java:47)
     at org.whoislibrary.WhoisCommand.executeQuery(WhoisCommand.java:72)
     at org.HttpTest.HttpTestActivity.onCreate(HttpTestActivity.java:35)
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
     at android.os.Handler.dispatchMessage(Handler.java:99)
     at android.os.Looper.loop(Looper.java:123)
     at android.app.ActivityThread.main(ActivityThread.java:3647)
     at java.lang.reflect.Method.invokeNative(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:507)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
     at dalvik.system.NativeStart.main(Native Method)

有什么想法吗?

最佳答案

不是 100% 确定(我稍后会检查),但我认为问题在于对于 MMM,您的月份也必须在适当的区域设置中。因此,如果您在 Android 上使用意大利语区域设置,则您的 PC 上的 Sep(大概区域设置为 EN)需要用意大利语表示。 你能试试吗?

关于java - Android 上的日期格式 : Unparseable date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9079311/

相关文章:

java - 页面滚动时 View 寻呼机内的回收器 View 不刷新

java - 捕获和抛出空指针异常的最佳实践?

android - 如何在 AR 中将 3D 模型放置在屏幕中心,并相对于轴上的摄像机角度将其移动近或远?

java - 在 Spring @RequestMapping 值中使用字符串数组 "constant"

android - 如何在 android 中滚动时放大 Recycler View 中心项目?

android - 将毫秒字符串转换为日期字符串

java - 如何从已弃用的 Date 类型替换 getDate()?

java - 替换 java.util.Date(year,month,day) 的公认方法是什么

java - FlowLayout 不与周围的 JScrollPane 一起流动

java - 匿名线程类的输出不同步