Date date = sdf.parse("13:21:30"); //时间还没到,输出语句就先输出了,请问是我哪里写错了
schedule(TimerTask task, long delay):可以理解为在等待delay毫秒后执行task;这是两个参数的;其实还有三个参数的; 例如: public static void main(String[] args) throws ParseException { Timer time = new Timer(); SimpleDateFormat sdf = new SimpleDateFormat("kk:mm:ss"); // 请问"kk:mm:ss"这个格式定义的正确吗 Date date = sdf.parse("19:21:30"); // 时间还没到,输出语句就先输出了,请问是我哪里写错了 time.schedule(new TimerTask() { public void run() { System.out.println("关机中"); } }, 10*1000); } 这是等待10秒后执行; 你可以生成一个变量,保存13:21:30这个时间和当前时间的差值; 然后将10*1000换成这个变量; 记得是毫秒;
java.util包里Timer有schedule(TimerTask task, Date time)方法和schedule(TimerTask task, long delay)方法,你说的是第二个,但我想使用第一个(其实我是想编一个定时关机Swing程序,第一个schedule(TimerTask task, Date time)方法比较方便)。SimpleDateFormat sdf = new SimpleDateFormat(); Date date = sdf.parse("2014-04-14 上午20:21"); 这是我之前编写的,能在指定时间实现关机。 但换成现在的语句却不行了(而是直接关机)
抱歉写错了 是 Date date = sdf.parse("2014-04-14 上午08:21");
貌似是你的格式有点问题;run中是执行关机的命令吧? class TimerDemo { public static void main(String[] args) throws ParseException { Timer time = new Timer(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd kk:mm"); // 请问"kk:mm:ss"这个格式定义的正确吗 Date date = sdf.parse("2014:04:14 21:06"); time.schedule(new TimerTask() { public void run() { System.out.println("关机中"); } }, date); } } 这个试试,我刚刚试了试,可以在指定时间执行run方法;
例如:
public static void main(String[] args) throws ParseException
{
Timer time = new Timer();
SimpleDateFormat sdf = new SimpleDateFormat("kk:mm:ss"); // 请问"kk:mm:ss"这个格式定义的正确吗
Date date = sdf.parse("19:21:30"); // 时间还没到,输出语句就先输出了,请问是我哪里写错了
time.schedule(new TimerTask()
{
public void run()
{
System.out.println("关机中");
}
}, 10*1000); }
这是等待10秒后执行;
你可以生成一个变量,保存13:21:30这个时间和当前时间的差值;
然后将10*1000换成这个变量;
记得是毫秒;
Date date = sdf.parse("2014-04-14 上午20:21");
这是我之前编写的,能在指定时间实现关机。
但换成现在的语句却不行了(而是直接关机)
是 Date date = sdf.parse("2014-04-14 上午08:21");
class TimerDemo
{
public static void main(String[] args) throws ParseException
{
Timer time = new Timer();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd kk:mm"); // 请问"kk:mm:ss"这个格式定义的正确吗
Date date = sdf.parse("2014:04:14 21:06");
time.schedule(new TimerTask()
{
public void run()
{
System.out.println("关机中");
}
}, date); }
}
这个试试,我刚刚试了试,可以在指定时间执行run方法;
SimpleDateFormat("kk:mm:ss")不指定年月日的话默认是1970年1月1日
so...