在当前时间添加一定的时间并写入

时间:2011-08-30 18:50:30

标签: android time add

我正在使用:

Calendar c = Calendar.getInstance();

我获得当前时间,

String sHour = c.get(Calendar.HOUR_OF_DAY)
String sMinute = c.get(Calendar.MINUTE)

我需要的是添加例如1小时10分钟 - 将其存储在一个变量中,也可以将Substract存储为10分钟并将其保存为另一个变量。 (我需要在TextView

中使用它们

我在Android文档中看到了add();方法,但我似乎无法理解它是如何工作的。感谢

2 个答案:

答案 0 :(得分:29)

您发布的代码无法编译,因为Calendar.get()不返回字符串。您还应该注意日历是可变的 - 它不像每次调用add都会返回一个新日历。因此,每次要为不同的值使用单独的变量时,您都需要创建一个 new 实例。例如:

Calendar now = Calendar.getInstance();

Calendar tmp = (Calendar) now.clone();
tmp.add(Calendar.HOUR_OF_DAY, 1);
tmp.add(Calendar.MINUTE, 10);
Calendar nowPlus70Minutes = tmp;

tmp = (Calendar) now.clone();
tmp.add(Calendar.MINUTE, -10);
Calendar nowMinus10Minutes = tmp;

如果可能,我强烈建议您使用Joda Time而不是日历/日期 - 这是高级API。但是,您可能希望修剪它所包含的时区,这样可以更快地启动并减少apk中的开销。

答案 1 :(得分:5)

您只需致电System.currentTimeMillis() + INTERVAL

其中INTERVAL是以毫秒为单位的间隔(例如:

public static final long INTERVAL = 1000 * 60 * 60 * 24; // 1 day