java—如何在特定时间执行事件

jecbmhm3  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(173)

目前,我正在尝试创建一个计时器,在每周的特定时间(周四下午1:00)通知我。我现在面临的问题是,如何在不采取任何行动的情况下触发计时器启动。我需要定时器在每次启动bot时自动启动。感谢您的帮助。
这是我的密码:

public class Reminder extends ListenerAdapter {
    @Override
    public void onGuildMessageReceived(GuildMessageReceivedEvent e) {
        if (e.getGuild().getId().equalsIgnoreCase("77804326694381163")) {
            TextChannel defaultChannel = e.getGuild().getDefaultChannel();
            if (defaultChannel != null) {
                Calendar time = Calendar.getInstance();
                ZoneId zoneId = ZoneId.of("America/Los_Angeles");
                time.setTimeZone(TimeZone.getTimeZone(zoneId));
                Date timeGet = time.getTime();

                DateFormat df = new SimpleDateFormat("EE HH:mm:ss");
                String string = df.format(timeGet);

                if (string.equalsIgnoreCase("Thu 13:00:00")) {
                    Timer timer = new Timer();
                    timer.schedule(new TimerTask() {
                        @Override
                        public void run() {
                            defaultChannel.getChannel().sendTyping().queue();
                            defaultChannel.getChannel().sendMessage("Works").queue();
                        }
                    }, time.getTime(), TimeUnit.MILLISECONDS.convert(7, TimeUnit.DAYS));
                }

            } else if (defaultChannel == null) {
                e.getChannel().sendTyping().queue();
                e.getChannel().sendMessage("Failed to get default channel.").queue();
            }
        }
    }
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题