Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取时间的未来日期_Java - Fatal编程技术网

Java 获取时间的未来日期

Java 获取时间的未来日期,java,Java,我有一个24小时制的时间“14:00:00”。 对于这个日期,我想生成一个日期,如果当前时间小于14:00:00,那么今天的日期,或者第二天的日期 “14:00:00”也是如此 如果当前日期时间为“30-10-2012 13:00:00”,则我希望为30-10-2012 否则,如果当前日期时间为“2012年10月30日15:00:00”,则我希望为2012年10月31日 我尝试了这个方法,它给出了今天的日期 public static String GetTodayDateTimeStamp(S

我有一个24小时制的时间“14:00:00”。 对于这个日期,我想生成一个日期,如果当前时间小于14:00:00,那么今天的日期,或者第二天的日期

“14:00:00”也是如此 如果当前日期时间为“30-10-2012 13:00:00”,则我希望为30-10-2012 否则,如果当前日期时间为“2012年10月30日15:00:00”,则我希望为2012年10月31日

我尝试了这个方法,它给出了今天的日期

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;
}

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

编辑:更一般的答案

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

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

  • 然后得到“d”的年、月和日部分


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

    创建新的
    Date
    对象时,将为其指定当前时间。如果使用
    日历
    实例创建其中两个对象,并将小时设置为14,将分钟、秒(如果必须)和毫秒设置为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。

    同意Brian的意见。。。你试过什么?顺便说一句,我建议使用Joda Time()来完成所有这些。您还应该考虑您感兴趣的时区。查看SimpleDataFormat类,了解如何解析您的输入,如何从中提取日期并进行比较。我添加了一个只给出今天日期的方法,如何只比较时间和未来日期我感觉14:00是某个时区一天的开始。如果是这样,你应该改变你的想法。实例化设置为该时区的Joda Time DateTime对象。在当地的意义上,打电话给你那天的第一刻。当你清楚地写出一个更好的问题时,在StackOverflow上创建一个新问题。这只适用于
    14:00:00
    对吗?请给出一个一般性的答案。如果已经有一个好的轮子存在,请不要重新发明轮子(特别是在这种情况下,如果它们变成了二次型的话)。好的,那么,你可以分享这些轮子,这样我们就可以从中受益。