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



我有我的时间在下面的格式,我使用此值来设置按钮的文本。

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

现在我的问题是,是否可以在此时间格式中添加一小时?

你必须使用 Calendar

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

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

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

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

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

  • 日历 API 文档

如果你不能使用 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);

顺便说一句。硬编码日期格式并不是最好的主意。除非您有充分的理由不这样做,否则您应该使用对最终用户的区域设置 (DateFormat df = DateFormat.getTimeInstance(DateFormat.DEFAULT, locale); ) 有效的区域设置。否则,您会产生 i18n 缺陷(谁在乎,我知道)。

如果你对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

相关内容

  • 没有找到相关文章

最新更新