Java dateFormat不可解析日期异常
在将json对象中收到的日期转换为所需格式时,我遇到了一个问题。我从后端得到的日期是Apr-13, Wednesday, 04:06:00 PM
。这就是我所做的
String refreshDateString = jobj.optString("refresh_date").toString();
SimpleDateFormat parseFormat = new SimpleDateFormat("MMM-dd, EEEE hh:mm:ss a");
Date refreshDate = parseFormat.parse(refreshDateString.replaceAll("\\p{Cntrl}", ""));
SimpleDateFormat outputFormat = new SimpleDateFormat("MMM dd, E, hh:mm a");
我也试着用一个E代替EEEE。有关于我错在哪里的信息吗?非常感谢
# 1 楼答案
图案上缺少额外的空格和逗号。不过,重要的一点是,如果您的系统使用的语言与您收到的日期不同,那么语言环境是:
在我的例子中,由于我的机器是意大利语的,如果没有区域设置,我将永远无法解析给定的日期
# 2 楼答案
您在周中的日期名称后缺少一个
,
,您应该使用E
而不是EEEE
,请使用此格式如果您在周中的日名称后没有}之间有额外的空间。用这个代替
,
;在EEEE
和hh
{# 3 楼答案
另外,我建议您使用Java8中包含的JodaTime库或最新版本的DateAPI(实际上是JodaTime的复制和粘贴)。因为和日期打交道要好得多。因此,要解析给定格式的字符串
如果你的代码中有很多日期转换等,那就一定要有