字符串 String str = "2012-10-18 23:59:59";
如何得出当前时间的前一个小时呢?2012-10-18 22:59:59
public static Date parse(String stringValue, String formatPattern) {
SimpleDateFormat format = new SimpleDateFormat(formatPattern);
try {
return format.parse(stringValue);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) throws Exception {
String dateStr = "2012-10-18 23:59:59";
long hourTime = 60*60*1000;
Date date = parse(dateStr, FORMAT_DATE_YYYY_MM_DD_HH_MM_SS);
Date d = new Date(date.getTime() - hourTime);
System.out.println(format(d, FORMAT_DATE_YYYY_MM_DD_HH_MM_SS));
}
将字符串时间转换成UTC时间,得到类似 1357845892 这个时间.秒数
然后减去3600秒后再转换成字串
apache common-langs 工具包有个 DateUtils
Date before = DateUtils.addHour(now, -1);
[code="java"]
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));
String timeStr = "2012-10-18 23:59:59";
Date time = stringToDate(timeStr);
cal.setTime(time);
System.out.println(cal.getTime().toLocaleString());
cal.add(Calendar.HOUR_OF_DAY, -1);
System.out.println(cal.getTime().toLocaleString());
[/code]
[code="java"]
public static Date stringToDate(String timeStr){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = sdf.parse(timeStr);
} catch (ParseException e) {
System.out.println(e.getMessage());
}
return date;
}
[/code]
Calendar startTime = Calendar.getInstance();
startTime.set(Calendar.HOUR_OF_DAY, startTime.get(Calendar.HOUR_OF_DAY)-1);