2015-10-26 1 views
2

Мне нужно сравнить если текущее время находится в промежутке между X+30 и X-30.Пробег в 1970 году, когда сравнение TimeStamp

Все идет хорошо с отметками времени, но когда год сравнения установлен на 1970 год; Таким образом, выход не является точным.

String string1 = "04:41 PM"; 
     Calendar calendar1,calendar2,calendar3,calendar4 ; 
     DateFormat time1; 
     Date time; 
     try { 
      time1 =new SimpleDateFormat("hh:mm a"); 
      time = time1.parse(string1); 
      calendar1 = Calendar.getInstance(); 
      calendar1.setTime(time); 
      System.out.println(time1.format(calendar1.getTime())); 
      calendar2 = Calendar.getInstance(); 
      calendar2.setTime(time); 
      calendar2.add(Calendar.MINUTE,30); 
      System.out.println(time1.format(calendar2.getTime())); 
      calendar3 = Calendar.getInstance(); 
      calendar3.setTime(time); 
      calendar3.add(Calendar.MINUTE,-30); 
      System.out.println(time1.format(calendar3.getTime())); 

      calendar4=Calendar.getInstance(); 

      System.out.println(time1.format(calendar4.getTime())); 
      Date now = calendar4.getTime(); 
      if (now.after(calendar3.getTime()) && now.before(calendar2.getTime())) { 
       //checkes whether the current time is between 14:49:00 and 20:11:13. 
       System.out.println(true); 
      } 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

ответ

1

В hh:mm a формате YEAR поле set to 1970 by default.

Unix, времени или POSIX времени, представляет собой систему для описания момента времени, определяется как число секунд, прошедших с полуночи преждевренный скоординированного времени (UTC) от 1 января 1970 года, не считая скачок секунд.

Так что в вашем случае, если вы хотите игнорировать YEAR, MONTH и DAY_OF_MONTH полей при сравнении дат, так это сделать (это сбрасывает YEAR, MONTH и DAY_OF_MONTH полей):

calendar4.setTime(time1.parse(time1.format(calendar4.getTime()))); 

после:

calendar4=Calendar.getInstance(); 
+0

его работа после игнорирования месяца и даты также ... спасибо bro –