日期:2014-05-20  浏览次数:20991 次

给一个指定的日期时间“2011-10-18 15:24:25”,加上小时分钟(如10小时,40分钟),如何计算相加之后的日期时间?
给一个指定的日期时间“2011-10-18 15:24:25”,加上小时分钟(如10小时,40分钟),如何计算相加之后的日期时间?
我用到calendar类,不知如何将字符串“2011-10-18 15:24:25”,转化为long形;
请高手指教,谢谢!

------解决方案--------------------
先转为 Date , 在转换成 calendar
------解决方案--------------------
Java code

DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
        try {
            Date date = format.parse("2011-10-18 15:24:25");
            System.out.print(date.getTime());
        } catch (ParseException e) {
            e.printStackTrace();
        }

------解决方案--------------------
Java code


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

public class CalendarDemo1 {
    public static void main(String[] args) {
        String timeStr="2011-10-18 15:24:25";
        DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date=null;
        long timeLong=0;
        try{
            date=df.parse(timeStr);
            timeLong=date.getTime();
            System.out.println("long:"+timeLong);
        }catch(ParseException e){
            e.printStackTrace();
        }

    }
}

------解决方案--------------------
下面是有时间相加的,其实不是一定要用Calendar的
Java code


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


public class CalendarDemo1 {
    public static void main(String[] args) {
        String timeStr="2011-10-18 15:24:25";
        DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date=null;
        long timeLong=0;
        long timeAdded=0;
        try{
            date=df.parse(timeStr);
            timeLong=date.getTime();
            System.out.println("long:"+timeLong);
            Calendar c=Calendar.getInstance();
            c.setTime(date);
            c.add(Calendar.MINUTE,40);
            timeAdded=c.getTimeInMillis();
            System.out.println("Added time:"+c.getTime());
            System.out.println("Added 40 minutes:"+timeAdded);
        }catch(ParseException e){
            e.printStackTrace();
        }

    }
}

------解决方案--------------------
顶4楼 正解

------解决方案--------------------
如果再添加10小时,加上这一行
Java code

c.add(Calendar.HOUR_OF_DAY,10);

------解决方案--------------------
Java code



    public static void main(String[] args) {
        try {
            DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = format.parse("2011-10-18 15:24:25");
            Calendar c = Calendar.getInstance();
            c.setTime(date);
            c.add(Calendar.HOUR_OF_DAY, 10);
            c.add(Calendar.MINUTE, 40);

            String s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(c
                    .getTime());
            System.out.println(s);

        } catch (Exception e) {
            e.printStackTrace();
        }

    }