2013-03-08 2 views
1

Я создаю программу в java, и я хочу проверить текущее время каждую минуту, и если она равна определенному времени, например, 10am println («Это 10 часов утра»). До сих пор я получаю текущее время как этотПроверить текущее время одновременно

public static String RemindMe() { 
     DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm"); 
     Date date = new Date(); 
     System.out.println(dateFormat.format(date)); 

     if (dateFormat.format(date).equals("2013/03/08 11:19")) 
      System.out.println("equal"); 
     else 
      System.out.println("not equal"); 

     return dateFormat.format(date); 
    } 

, но как я могу сделать это проверить текущее время каждую минуту и, если это возможно одновременно. Благодаря

+0

.... Вы делаете это «жестким» способом (ну, по крайней мере, вы каждый раз используете новый форматтер, что хорошо). [Joda-Time] (http://joda-time.sourceforge.net/) и его классы поддержки (например [LocalDateTime] (http://joda-time.sourceforge.net/apidocs/org/joda/time/LocalDateTime .html)) должны сделать это более интуитивно понятным. Например, я предполагал, что часовой пояс не должен иметь значения, но он может ... –

ответ

3

Вы можете использовать ScheduledExecutorService:

ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); 
final Runnable checkTime = new Runnable() { 
    public void run() { 
     remindMe(); 
    } 
}; 
scheduler.scheduleAtFixedRate(checkTime, 0, 1, TimeUnit.MINUTES); 

Примечание: соглашение в Java, чтобы начать имена методов в нижнем регистре.

+0

не считают его приемлемым решением. Для иллюстрации, если частота составляет 1 час, а не 1 минуту, это решение может вызвать функцию напоминания() в 9:35, 10:35 и так далее. Но в соответствии с требованием он должен срабатывать в 9:00, 10:00 и т. Д. – sgp15

+0

@ sgp15 Если ему нужно запустить в определенное время, первоначальная задержка должна быть скорректирована. Я не понимаю, так ли это. – assylias

+0

@assylias - хорошо. Пожалуйста, восстановите мое редактирование. – sgp15

Смежные вопросы