SimpleDateFormat 无法解析的日期异常

Unparsable Date exception with SimpleDateFormat

我想从日期中获取毫秒数,但出现异常

java.text.ParseException: Unparseable date: "Thu Jul 25 10:56:29 GMT+02:00 2019"

这就是我到目前为止所做的:

我使用此模式从 DatePicker 中获取日期 "EEE MMM dd HH:mm:ss zzz yyyy",然后传递给方法以获取毫秒数:

long milliDate = parseIso8601(dateTimeCalendar.getTime().toString());

private static long parseIso8601(String value) {
    try {
        return new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US).parse(value).getTime();
    } catch (ParseException ignored) {
        return 0;
    }
}

我遇到了异常,它是 returns0。我不知道出了什么问题。谢谢

您可以使用 DatePicker 和 TimePicker 的值创建日历对象:

Calendar calendar = Calendar.getInstance();
calendar.set(datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth(), 
             timePicker.getCurrentHour(), timePicker.getCurrentMinute(), 0);
long startTime = calendar.getTimeInMillis();

时区问题,zzz 需要时区名称,例如美国东部时间、格林威治标准时间或其他时间。

您案例的正确模式:

EEE MMM dd HH:mm:ss 'GMT'XXX yyyy