获取未来的时间日期

时间:2012-10-30 12:43:24

标签: java

我有24小时格式“14:00:00”的时间。 对于这个日期,我想生成日期,如果当前时间少于14:00:00,那么今天的日期就是第二天的日期。

所以对于“14:00:00” 如果当前日期时间是“30-10-2012 13:00:00”比我想要30-10-2012 否则,如果当前日期时间是“30-10-2012 15:00:00”,而不是我想要的31-10-2012

我尝试了这种给出今天日期的方法

public static String GetTodayDateTimeStamp(String time)
{
    String toReturn = "";

    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    Date date = new Date();
    String toDayDate = dateFormat.format(date);

    toReturn = toDayDate + " " + time;

    return toReturn;
}

2 个答案:

答案 0 :(得分:2)

创建新的Date对象时,将为其分配当前时间。如果您创建其中两个对象并将小时设置为14,并且使用Calendar实例将分钟,秒(如果必须,则为毫秒)设置为0,则您将需要比较两个日期:

Date now = new Date();
Date today14pm = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(today14PM);
calendar.set(Calendar.HOUR_OF_DAY, 14);
calendar.set(Calendar.MINUTES, 0);
calendar.set(Calendar.SECONDS, 0);
calendar.set(Calendar.MILLISECONDS, 0);
today14pm = Calendar.getTime();

if(now.after(today14pm)) {
    //Generate tomorrow's date    
} else {
    //Generate today's date
}

以防万一,您可能希望将日历的lenient属性设置为true。

答案 1 :(得分:0)

您可以在当前日期添加十个小时,并获取年,月,日部分。

编辑:更通用的答案。

  1. 获取时间部分并为其添加1秒。让它成为“t”。

  2. 然后从当前日期减去它,并在结果中添加1天。让它成为“d”。

  3. 然后获取“d”的年,月和日部分。

  4. 例如,让时间为10:00:00而不是14:00:00。因此,如果您从“今天10:00:01”中减去它,则会得到“今天00:00:01”。然后加1天(或24小时),你得到“明天00:00:01”。