简体   繁体   中英

Comparing a string containing time with system time in android

I am new to android. I am storing time in a string in the format hh:mm and want to compare it with current system time. if the match i want to generate a notification. This is the code

NOTE: THE STRING str holds time.

     time = days+1;
    while(i>0)
    {    
    long hour=calendar.get(calendar.HOUR_OF_DAY);
    long min=calendar.get(calendar.MINUTE);
    String str = alarm[time];
    SimpleDateFormat formatter = new SimpleDateFormat("hh:mm");
    try {
       Date date = (Date)formatter.parse(str);
       Calendar c2 = GregorianCalendar.getInstance(); // creates a new calendar instance
       c2.setTime(date);   // assigns calendar to given date 
       hours=c2.get(Calendar.HOUR_OF_DAY); // gets hour in 24h format
        minutes=c2.get(Calendar.MINUTE);   
        if(hours==hour && min==minutes)
            {
            builder.setContentIntent(contentIntent)
            .setSmallIcon(R.drawable.ic_books)
            .setLargeIcon(BitmapFactory.decodeResource(res, R.drawable.ic_launcher))
            .setTicker(res.getString(R.string.Cal))
            .setWhen(System.currentTimeMillis())
            .setAutoCancel(true)
            .setContentTitle("You Have a Lecture !!")
            .setContentText(alarm[time+1]);
            Notification n = builder.build();
            nm.notify(0, n);                                            
            }
        i--;
        time=time+days;
        } catch (java.text.ParseException e) {
            e.printStackTrace();
            }
        }

but i get a

java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date

please help.

You have imported the below package...

 import java.sql.Date;

You should import the package as below...So, you should remove the above import and import this below one.

 import java.util.Date;

java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date

this line

(Date)formatter.parse(str)

returns an java.util.Date object, but you are casting it to java.sql.Date . Check your import and adjust it (change from java.sql.Date to java.util.Date )

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM