2

我有一个 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;
}
4

2 回答 2

2

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

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。

于 2012-10-30T12:56:24.383 回答
0

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

编辑:一个更通用的答案。

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

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

  3. 然后得到“d”的年、月、日部分。

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

于 2012-10-30T12:45:57.203 回答