java中时间如何转换成日期。 如现在有个固定时间startTime:2011-03-01 23:59:59 要求出向后推迟一小时时

我想法是将string 类型 startTime 转成Date,再Date转为Calendar。
calendar.add(Calendar.HOUR_OF_DAY, 1);//1小时后
String strEndDate=new SimpleDateFormat("yyyy年MM月dd日HH时").format(calendar.getTime());
现在卡在了Date转为Calendar上。希望有人能帮我想个办法求出固定时间推迟一小时后的时间

第1个回答  2011-01-14
楼主,我提供一个我自己一直在用,很实用的一个日期转换类给你吧。你创建一个工具类,使用方法也很简单的。

工具类DateFormater源代码

public class DateFormater {
public static String dateToString(Date date,String filterd){
SimpleDateFormat sf=new SimpleDateFormat(filterd);
return sf.format(date);
}

public static Date dateToDate(Date date,String filterd){
Date result;
SimpleDateFormat sf=new SimpleDateFormat(filterd);
String date_str=sf.format(date);
try {

result = sf.parse(date_str);

return result;

} catch (ParseException e) {

e.printStackTrace();

}

return null;

}

public static Date stringToDate(String date_str,String filterd){
Date result;
SimpleDateFormat sf=new SimpleDateFormat(filterd);
try {

result = sf.parse(date_str);

return result;

} catch (ParseException e) {

e.printStackTrace();

}

return null;
}
}

使用范例:

楼主这个问题可以这样使用:

Date date = DateFormater.stringToDate("2011-03-01 23:59:59","yyyy-MM-dd HH:mm:ss");
date.setHour(date.getHour()+1);

这样就得到了时间推迟了一个小时的Date对象了。

直接输出本地时间格式,可以用date.toLocaleString()
按照一定格式输出,可以用DateFormater.dateToString(date,"yyyy-MM-dd")

具体的格式根据输出样式字符串的定义。

楼主我在做系统调度的时候,经常使用到时间的计算,我也是使用这个实用的时间转换类,希望这个类会带给楼主帮助!

谢谢!
第2个回答  2011-01-14
用这个
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtil {

public static void main(String[] args) throws ParseException {

String str = "2011-03-01 23:59:59";

Date time = addHoursToDate(str, 1);//hourstep为你要添加的小时数

System.out.println(time.toString());

}

private static Date addHoursToDate(String str, int hourStep) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

Calendar calendar = Calendar.getInstance();

calendar.setTime(sdf.parse(str));
calendar.add(Calendar.HOUR, hourStep);

return calendar.getTime();
}
}

--------------
Wed Mar 02 00:59:59 CST 2011
第3个回答  2011-01-14
Date转为Calendar有问题吗?

Calendar cal = Calendar.getInstance();
cal.setTime(startTimeDate);

这样转试试?startTimeDate改为你的Date形startTime本回答被网友采纳
相似回答