我有以下符合 ISO8601 标准的字符串:
2024-03-25T11:34:15.000Z
我需要将其转换为java日期。我找到了以下解决方案:
Date date = Date.from(Instant.parse("2024-03-25T11:34:15.000Z"));
long epoch = date.getTime());
但是,这至少需要 Android Oreo。我需要一个可以解析 KitKat 的转换器。有什么想法吗?
尝试了以下解决方案,但遇到了同样的问题:
我还通过使用 JAXB 找到了一个解决方案,但我在某处读到它使我的 APK 膨胀了 9MB!有了它,解决方案就可以这么简单:
javax.xml.bind.DatatypeConverter.parseDateTime(iso8601Date).getTimeInMillis();
这解决了我的问题。
private long convertDateToLong(@NonNull String iso8601Date) {
long epoch = -1;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.US);
try {
Date date = sdf.parse(iso8601Date);
if(date != null)
epoch = date.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return epoch;
}