我打算在我想要的时刻制作推文机器人。我已经设法通过以下代码每秒获得时间,但是当我的时间是我想要的时间,没有任何反应,它会继续打印时间,就像我设置的时间不同于实际时间即使它们相同。这是我的代码: import java.util.Calendar;
public class Main {
public static void main(String[] args) {
while (true) {
Calendar a = Calendar.getInstance();
//The time I want
String wTime = "19:24:12";
String sec = Integer.toString(a.get(Calendar.SECOND));
String min = Integer.toString(a.get(Calendar.MINUTE));
String hour = Integer.toString(a.get(Calendar.HOUR_OF_DAY));
String time = hour + ":" + min + ":" + sec;
System.out.println(time);
if(time == wTime){
//Tweet something
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
答案 0 :(得分:1)
使用.equals()
代替==
来比较字符串:
if (time.equals(wTime)) {
// Tweet something
}
答案 1 :(得分:1)
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(3);
然后你可以定义MyClass类:
class MyClass implements Runnable {
@Override
public void run() {
// do some needed work
}
}
然后你可以这样做:
scheduler.scheduleAtFixedRate(new MyClass(), 1, 1, TimeUnit.SECONDS);