Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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_Date_Time_Date Arithmetic - Fatal编程技术网

在java中向现有时间添加时间

在java中向现有时间添加时间,java,date,time,date-arithmetic,Java,Date,Time,Date Arithmetic,可能重复: 我无法解决以下问题,请帮助我。那就是我正在将现有时间添加到一些其他时间(分钟、秒或小时)。我无法写出我写的以下wt类型,我提到没有给出正确答案 String allexam_end_time="18:59:00";//48540000 long oneminute=60000; try{ SimpleDateFormat sdfkk = new SimpleDateFormat("hh:mm:ss"); Date reqEndtimekk = sdfkk.parse

可能重复:

我无法解决以下问题,请帮助我。那就是我正在将现有时间添加到一些其他时间(分钟、秒或小时)。我无法写出我写的以下wt类型,我提到没有给出正确答案

String allexam_end_time="18:59:00";//48540000
long oneminute=60000;
try{
    SimpleDateFormat sdfkk = new SimpleDateFormat("hh:mm:ss");
    Date reqEndtimekk = sdfkk.parse(allexam_end_time);
    long total=reqEndtimekk.getTime()+oneminute;
    System.out.println("TOtal miliseconds         "+reqEndtimekk.getTime()+oneminute);
    System.out.println("total---------"+total);
    int s = (int)(total / 1000) % 60;
    int m = (int)(total / (1000 * 60)) % 60;
    int h=  (int) (total / (1000 * 60 * 60)) % 24;
    System.out.println(h+":"+m+":"+s);
}catch(Exception e){

}
输出 但我需要回答,若加上一分钟意味着输出应该是19:00:00
如何解决?

您可以使用GregoriaCalendar,下面是一个代码示例:

    String allexam_end_time = "18:59:00";// 48540000
    SimpleDateFormat sdfkk = new SimpleDateFormat("hh:mm:ss");
    Date reqEndtimekk = sdfkk.parse(allexam_end_time);
    Calendar instance = GregorianCalendar.getInstance();
    instance.setTime(reqEndtimekk);
    //add one minute        
    instance.add(GregorianCalendar.MINUTE, 1);

    System.out.println(sdfkk.format(instance.getTime()));
输出

07:00:00
也许这会有帮助

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TimeUtility {

    public static void main(String[] args) throws ParseException {
        String examEndTime = "18:59:00";

        System.out.println(modifyTime(examEndTime, 60));
    }

    private static String modifyTime(String origTime, int modSecs) throws ParseException {

        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
        timeFormat.setLenient(false);
        Date time = timeFormat.parse(origTime);
        time.setSeconds(modSecs);
        return timeFormat.format(time);
    }

}
输出将为

19:00:00

我觉得您的代码可能正在进行一些时区转换。 例如,我将18:59:00计算为(18*60*60+59*60)*1000=68340000ms。但是如果我将相同的内容放入Java并调用getTime(),我得到39540000ms,你得到48540000


其他一些回复是解决问题的更好方法(一个主要的方法是在最后调用sdfkk.format(requendtimekk),而不是再次获取h/m/s),但是您的but似乎在时区附近。

}catch(异常e){}
在坏代码中永远不要这样做。把它改成catch(例外e){e.printStackTrace();}@user1906191请告诉我你到底想要什么?你想在分、秒和小时内找出两个时间之间的差异吗???我想在19:00:00这种格式只需将SimpleDataFormat的“hh”更改为“hh”,它将显示19而不是7:)嗨,请告诉我如何添加毫秒,我不想以60通过,我想传递毫秒我如何添加18:59:00+毫秒想要19:00:00格式的ans请将GregorianCalendar.MINUTE更改为GregorianCalendar.millis秒。。。所以一分钟后应该是:instance.add(gregorianalendar.millished,60000);您好,请告诉我如何添加毫秒,我不想通过60,我想通过毫秒我如何添加18:59:00+毫秒想要19:00:00格式的ans请
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TimeUtility {

    public static void main(String[] args) throws ParseException {
        String examEndTime = "18:59:00";

        System.out.println(modifyTime(examEndTime, 60));
    }

    private static String modifyTime(String origTime, int modSecs) throws ParseException {

        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
        timeFormat.setLenient(false);
        Date time = timeFormat.parse(origTime);
        time.setSeconds(modSecs);
        return timeFormat.format(time);
    }

}