无法解释的日期:" 10:40:54" (在偏移0处)

时间:2016-10-24 06:31:07

标签: android date time android-date

我从1970年开始有时间在millis中,我将它转换为格式化为"EEEE-yyyy/MM/dd-hh:mm:ss"的字符串,然后将其拆分为数组,并尝试解析hh:mm:ss部分到目前为止,因此我将使用{ {1}}方法,但它为我提供了无法解析的日期异常。

date.compareTo

LogCat和数据日志

public class NotificationWakefulIntentService extends IntentService {

    public NotificationWakefulIntentService() {
        super("NotificationWakefulIntentService");
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        Log.d("time",(System.currentTimeMillis()/1000)+"");

        Date dateTemp = null;
        Date dateTempLocal = null;
        List<Action> actionList = Action.listAll(Action.class);



        for (Action act: actionList){
            if (act.isRepeating()){
                SimpleDateFormat formatter = new SimpleDateFormat("EEEE-yyyy/MM/dd-hh:mm:ss", Locale.getDefault());
                String asString = formatter.format(act.getDate());
                String[] parsedDate = asString.split("-");
                Log.e("time", asString);

                String time = parsedDate[2];
                //String date = parsedDate[1];
                String day = parsedDate[0];

                String asStringLocal = formatter.format(System.currentTimeMillis());
                String[] parsedDateLocal = asStringLocal.split("-");

                String timeLocal = parsedDateLocal[2];
                //String dateLocal = parsedDateLocal[1];
                String dayLocal = parsedDateLocal[0];

                try {
                    dateTemp = formatter.parse(time);
                    dateTempLocal = formatter.parse(timeLocal);
                    Log.e("dateEquality", (dateTemp.compareTo(dateTempLocal))+"");
                } catch (ParseException e) {
                    e.printStackTrace();
                }

                if (dateTemp!=null && dateTempLocal!=null) {
                    if (day.equals(dayLocal) && dateTemp.compareTo(dateTempLocal) > 0) {
                        Log.e("notify", "notify");
                    }
                }
            }else {

            }
        }

        SimpleWakefulReciever.completeWakefulIntent(intent);
    }
}

1 个答案:

答案 0 :(得分:2)

您的格式字符串为false。必须是:new SimpleDateFormat("hh:mm:ss");才能解析时间部分。

因此,在您的代码中,您需要一个用于解析时间,一个用于格式化字符串