1,获取时间:年,月,日 时:分:秒
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day_month = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);//15
int minute = calendar.get(Calendar.MINUTE);//16
int second = calendar.get(Calendar.SECOND);//9
2, 制作定时任务
linux自带的crontab -e命令
#每天23:00 定时关机
#格式:分 时 天 月 周几 具体命令
0 23 * * * sudo poweroff
java代码实现:
import java.util.Calendar;
public class OntimeTest {
public static void main(String[] args) {
//间隔一段时间执行: 每隔1分钟: 打印时间戳
intervalOnTime(0, 1, 0);
//指定某个时间执行: 每天24:00:00执行计划
fixedTimeAction(0, 0, 0);
}
private static void fixedTimeAction(int destHour, int destMinute, int destSecond) {
while (true) {
Calendar calendar = Calendar.getInstance();
// int year = calendar.get(Calendar.YEAR);
// int month = calendar.get(Calendar.MONTH);
// int day_month = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);//15
int minute = calendar.get(Calendar.MINUTE);//16
int second = calendar.get(Calendar.SECOND);//9
if (hour == destHour && minute == destMinute && second == destSecond) {
System.out.println(hour + "," + minute + "," + second);
}
}
}
public static void intervalOnTime(int destHours, int destMinutes, int destSeconds) {
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);//15
int minute = calendar.get(Calendar.MINUTE);//16
int second = calendar.get(Calendar.SECOND);//9
Calendar calendar2 = null;
int hour2 = 0;
int minute2 = 0;
int second2 = 0;
while (true) {
calendar2 = Calendar.getInstance();
hour2 = calendar2.get(Calendar.HOUR_OF_DAY);
minute2 = calendar2.get(Calendar.MINUTE);
second2 = calendar2.get(Calendar.SECOND);
//计算时间差
int hourDiff = hour2 - hour;
int minuteDiff = minute2 - minute;
int secondDiff = second2 - second;
if (destHours != 0 && hourDiff == destHours //每小时: 轮询
&& destMinutes == 0 && destSeconds == 0) {
System.out.println(hourDiff + " 小时过去了...");
hour = hour2;
} else if (destMinutes != 0 && minuteDiff == destMinutes
&& destHours == 0 && destSeconds == 0) {//每分钟: 轮询
System.out.println(minuteDiff + " 分钟过去了...");
minute = minute2;
} else if (secondDiff != 0 && secondDiff == destSeconds
&& destHours == 0 && destMinutes == 0) {//每秒钟: 轮询
System.out.println(secondDiff + " 秒过去了...");
second = second2;
}
}
}
}