如何为我的时间增加一小时

时间:2011-05-16 07:29:09

标签: java datetime

我的时间采用以下格式,我使用此值设置按钮的文本。

String strDateFormat = "HH:mm: a";
SimpleDateFormat sdf ;
 sdf = new SimpleDateFormat(strDateFormat);
startTime_time_button.setText(sdf.format(date));

现在我的问题是, 这个时间格式可以加一小时吗?

5 个答案:

答案 0 :(得分:9)

您必须使用Calendar

Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.HOUR_OF_DAY, 1);
date = cal.getTime();

答案 1 :(得分:6)

我认为最好和最简单的方法是使用Apache Commons Lang:

Date incrementedDate = DateUtils.addHour(startDate, 1);

http://commons.apache.org/lang/api-2.6/org/apache/commons/lang/time/DateUtils.html

答案 2 :(得分:3)

Calendar cal = Calendar.getInstance();
cal.setTime(setYourTimeHereInDateObj);
cal.add(Calendar.HOUR, 1);
Date timeAfterAnHour = cal.getTime();
//now format this time 

查看

答案 3 :(得分:2)

如果你不能使用Jabal的建议(即你不允许使用非JDK库),你可以使用它:

long hour = 3600 * 1000; // 3600 seconds times 1000 milliseconds
Date anotherDate = new Date(date.getTime() + hour);

如果您正在寻找时区转换,只需将一个转换为格式化程序,它就会更快地运行:

TimeZone timeZone = TimeZone.getTimeZone("UTC"); // put your time zone instead of UTC
sdf.setTimeZone(timeZone);

顺便说一句。硬编码日期格式不是最好的想法。除非你有充分的理由不这样做,否则你应该使用对最终用户的Locale(DateFormat df = DateFormat.getTimeInstance(DateFormat.DEFAULT, locale);)有效的那个。否则你会创建i18n缺陷(谁知道,我知道)。

答案 4 :(得分:0)

如果您对Calendar.HOURCalendar.HOUR_OF_DAY之间的使用感到困惑。与Calendar.MILLISECOND

一起去
val nextHour: Date = Calendar.getInstance().also {
        it.time = Date() // set your date time here
    }.also {
        it.add(Calendar.MILLISECOND, 1 * 60 * 60 * 1000) // 1 Hour
    }.time