如何比较HH:MM中的存储时间与当前时间?

时间:2017-05-25 09:38:02

标签: java android jodatime

我尝试使用Joda-Time库将字符串"hh:mm"格式的存储时间与当前时间进行比较。我使用了以下代码,但输出是随机的。它的输出不对。

LocalTime now = LocalTime.now();
LocalTime limit;
limit = LocalTime.parse(date); //date is any string data in format "hh:mm", e.g "14:30"  

if( now.isAfter( limit )){
    ans = date+"is Past or Present Time";
}else{
    ans = date+" is Future time";
}

2 个答案:

答案 0 :(得分:0)

使用此代码获取当前日期:

Date date = new Date();
DateFormat format = new SimpleDateFormat("HHmm");
LocalTime now=LocalTime.parse(format.format(date));

然后尝试比较,希望它会对你有所帮助!由于您使用的是LocalTime.now(),因此其中还包含时间默认时区。

答案 1 :(得分:0)

  

尝试这可能对您有用。

public  void DateComparision(String dateString) {
    try {

        //"yyyy-MM-dd" --> Here you can take your date format

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        // Get date object from given string
        String givenDate = dateString;
        Date date1 = null;
        try {
            date1 = sdf.parse(givenDate);
        } catch (java.text.ParseException e) {
            e.printStackTrace();
        }

        // Get date object from current date
        String currentDate = sdf.format(new Date());
        Date date2 = null;

        try {
            date2 = sdf.parse(currentDate);
        } catch (java.text.ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        if (date1.compareTo(date2) < 0) {

            // Past date

        } else if (date1.compareTo(date2) > 0) {

            // Futer date

        } else {

            // Today date

        }

    } catch (ParseException e1) {
        e1.printStackTrace();
    }

}