Java时间单位-设置为一周';s时间单位

Java时间单位-设置为一周';s时间单位,java,timeunit,Java,Timeunit,我正在尝试一些方法和一个动作/命令的响应,可以每周使用一次(防止垃圾邮件)。我唯一的问题是如何将java时间设置为一周。这就是我所拥有的: public static long displayTime; 方法: public static boolean setDisplayName(Player player, String displayName) { synchronized (cachedNames) { if((SerializableFilesMan

我正在尝试一些方法和一个动作/命令的响应,可以每周使用一次(防止垃圾邮件)。我唯一的问题是如何将java时间设置为一周。这就是我所拥有的:

public static long displayTime;
方法:

    public static boolean setDisplayName(Player player, String displayName) {
    synchronized (cachedNames) {
        if((SerializableFilesManager.containsPlayer(Utils.formatPlayerNameForProtocol(displayName)) || cachedNames.contains(displayName) || !cachedNames.add(displayName)))
            return false;
        if(player.hasDisplayName())
            cachedNames.remove(player.getDisplayName());
    }
    displayTime = System.currentTimeMillis() + (1000*60*60);
    String displayname = player.getDisplayName();
    player.setDisplayName(displayName);
    FriendChatsManager.refreshChat(player);
    Highscores.highscores(player, displayname);
    player.getAppearence().generateAppearenceData();
    return true;
}

public static String convertToTime() {
    String time = "You have to wait "+(getTime() == 0 ? "few more seconds" :      getTime()+" minutes")+" to change your display name again!";
    return time;
}

public static int getTime() {
    return (int) (displayTime-System.currentTimeMillis()/60000);
}    
我试图更改为“周”时间的是displayTime=System.currentTimeMillis()+(1000*60*60)。我相信(1000*60*60)是24小时,对吗?这是我唯一的问题。解决此问题后,用户每周只能使用该命令一次。命令就在这里:

case "setdisplay":
            if (DisplayNames.displayTime > System.currentTimeMillis()) {
                player.getPackets().sendGameMessage(DisplayNames.convertToTime());
                return true;
            }
            if (!player.isDonator() && !player.isExtremeDonator()) {
                player.getPackets().sendGameMessage(
                        "You do not have the privileges to use this.");
                return true;
            }
DisplayNames是包含方法和所有内容的类。谢谢你的帮助,我相信这只是一个愚蠢的问题:P


~Derek

您可以使用
Calendar
类,它有修改日期的方法,例如添加日期。它可以转换成日期。它解决了我大部分关于时间的问题。希望它也适用于您。

您可以使用
日历
类,它有修改日期的方法,例如添加日期。它可以转换成日期。它解决了我大部分关于时间的问题。希望它也能对你起作用。

我用Calendar.DAY\u OF_WEEK表示一周中的几天

我用Calendar.DAY\u OF_WEEK表示一周中的几天

好吧,你介意确认displayTime=System.currentTimeMillis()+(1000*60*60);是24小时吗?如果不是,这将转换为什么时间?此外,我不希望这被设置为每7天或1周发生一次。我不认为calandar会起作用,因为它可以在不同的日子使用,这可能无法正常工作。那么,您是否介意确认displayTime=System.currentTimeMillis()+(1000*60*60);是24小时吗?如果不是,这将转换为什么时间?此外,我不希望这被设置为每7天或1周发生一次。我认为calandar不起作用,因为它可以在不同的日子使用,这可能无法正常工作。