【问题标题】:Add a certain amount of time to a current time and write it给当前时间加上一定的时间并写入
【发布时间】:2011-08-30 18:50:29
【问题描述】:

我正在使用:

Calendar c = Calendar.getInstance();

我得到当前时间,

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

我需要添加例如1 小时 10 分钟 - 将其存储在一个变量中,并减去假设 10 分钟并将其保存为另一个变量。 (我需要在TextView 中同时使用它们)

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

【问题讨论】:

    标签: android time add


    【解决方案1】:

    您发布的代码无法编译,因为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 而不是 Calendar/Date - 这是一个高级 API。但是,您可能希望修剪它所包含的时区,以便更快地开始并减少您的 apk 开销。

    【讨论】:

    • 完美地帮助了我,谢谢
    • 如果我尝试添加 100 分钟,谁能告诉我会发生什么?它会将其添加为 1 小时 40 分钟吗?或者我必须在添加之前将我的时间转换为 HH:mm 格式?
    • @GeekWithGlasses:我强烈建议你养成自己尝试的习惯。如果添加 100 分钟,很容易找出会发生什么 - 只需在一个小型控制台应用程序中尝试即可。这样你会学到比我们直接告诉你更多的东西。
    【解决方案2】:

    您可以直接拨打System.currentTimeMillis() + INTERVAL

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

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

    【讨论】:

      猜你喜欢
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 2013-01-19
      • 2020-10-11
      • 2013-04-18
      • 1970-01-01
      • 1970-01-01
      • 2012-02-29
      相关资源
      最近更新 更多