【发布时间】:2018-12-23 09:07:18
【问题描述】:
我正在制作一个应用程序,该应用程序使用提供带有时间戳的数据的 API。 时间戳看起来像:
Jul 20, 2018
我想将字符串转换为日期。 我尝试使用此代码将字符串解析为日期。
DateFormat dateFormat = new SimpleDateFormat("MMM dd, yyyy", Locale.US);
Date date = dateFormat.parse("Jul 20, 2018");
但我什至无法编译我的代码。每次我尝试使用 dateformat.parse() 解析字符串时,都会出现以下编译错误:
java.text.ParseException
当鼠标悬停在代码中的 .parse() 上方时,它甚至会出现 我浏览了一整天并尝试了一些不同的东西,但每次我使用 .parse() 时都会出现这个错误。我真的不知道该做什么了。
我还没有发图的权限,你可以看截图:https://imgur.com/ux5l9hY
我正在使用 Java 8(支持 lambda 表示法)。我正在使用 androidx.legacy:legacy-support 库,最低 API 19 和目标 API 28。 (所以这个问题的解决方案也应该支持旧设备)
我尝试过但失败的其他事情:
Android, How can I Convert String to Date?
Cant convert String to date in android
How to convert "2017-04-26T20:55:00.000Z" string to a Date in java android studio
【问题讨论】:
-
答案在您提供的第四个链接中
-
您的代码编译正确并给出正确答案。
-
欢迎来到 Stack Overflow。你的问题有矛盾。你说你不能编译。你说你得到一个异常,它只能在运行时发生,也就是在你编译成功之后。您可能对编译时错误和运行时错误之间的区别感到困惑?我投票结束,因为不清楚你在问什么。请在问题中澄清,我很乐意撤回我的近距离投票。
-
如果您在运行程序时确实遇到了异常,那么这可能是重复的Java - Unparseable date。
-
顺便考虑扔掉长期过时且臭名昭著的麻烦
SimpleDateFormat和朋友,并将ThreeTenABP添加到您的Android项目中,以便使用java.time,现代Java日期和时间API .使用起来感觉好多了。
标签: java android parsing simpledateformat