首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不可解析日期:"10:40:54“(相距0)

不可解析日期:"10:40:54“(相距0)
EN

Stack Overflow用户
提问于 2016-10-24 06:31:06
回答 1查看 472关注 0票数 0

从1970年开始,我就有时间使用millis了,我把它转换成字符串格式为这个"EEEE-yyyy/MM/dd-hh:mm:ss",然后将它拆分成数组,并尝试解析hh:mm:ss部件到日期,所以我使用date.compareTo方法,但是它给了我无法解析的日期异常。

代码语言:javascript
复制
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);
    }
}

LogCat和数据日志

代码语言:javascript
复制
E/time: понедельник-2016/10/24-10:40:54
10-24 09:27:01.265 2655-3291/by.mtz.reminder W/System.err: java.text.ParseException: Unparseable date: "10:40:54" (at offset 0)
10-24 09:27:01.265 2655-3291/by.mtz.reminder W/System.err:     at java.text.DateFormat.parse(DateFormat.java:626)
10-24 09:27:01.265 2655-3291/by.mtz.reminder W/System.err:     at by.mtz.reminder.wakefulService.NotificationWakefulIntentService.onHandleIntent(NotificationWakefulIntentService.java:58)
10-24 09:27:01.265 2655-3291/by.mtz.reminder W/System.err:     at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
10-24 09:27:01.265 2655-3291/by.mtz.reminder W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:99)
10-24 09:27:01.265 2655-3291/by.mtz.reminder W/System.err:     at android.os.Looper.loop(Looper.java:137)
10-24 09:27:01.265 2655-3291/by.mtz.reminder W/System.err:     at android.os.HandlerThread.run(HandlerThread.java:60)
10-24 09:27:06.805 2655-3407/by.mtz.reminder D/time: 1477290426
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-24 06:36:28

格式字符串为假。它必须是:只用于解析时间部分的new SimpleDateFormat("hh:mm:ss");

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40211975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档