【问题标题】:Convert Minutes to milliseconds Java/android将分钟转换为毫秒 Java/android
【发布时间】:2014-03-18 03:30:53
【问题描述】:

我正在尝试将给定的分钟数转换为毫秒。

例如:15 分钟或 20 分钟或 44 分钟应以编程方式转换为毫秒。

我尝试了以下方法:

Calendar alarmCalendar = Calendar.getInstance();

alarmCalendar.set(Calendar.MINUTE,15);

long alarmTime = alarmCalendar.getTimeInMillis();

Log.e("Milli", "seconds"+alarmTime);

这没有给出正确的值?转换它的最佳方法是什么?

【问题讨论】:

  • 15 分钟(以毫秒为单位)是 15 * 60 * 1000。我错过了什么?
  • 1 分钟 = 60 * 秒,1 秒 = 1000 毫秒 => 1 分钟 = 60000 毫秒。这是基础数学!​​
  • getTimeInMillis() 从纪元返回当前时间,以 UTC 毫秒为单位。
  • @ArtooDetoo 我知道这是一个简单的计算。我不想使用计算,而是想使用类似 RC 的答案。
  • ...内部执行相同的计算... ;)

标签: java android datetime


【解决方案1】:
TimeUnit.MINUTES.toMillis(yourMinutes)

TimeUnitjavadoc (android)

【讨论】:

  • @TheDevMan 不,它没有
  • @TheDevMan 不,枚举值 MINUTES 已添加到 API 级别 9。
  • @RC 我认为 80% 都在使用 android 2.2
  • @TheDevMan 1.3%,看看here
  • 1-2 更可能是实数 :)
【解决方案2】:
int minutes = 42;
long millis = minutes * 60 * 1000;

【讨论】:

    【解决方案3】:

    1 分钟 = 60000 毫秒。

    int minutes = 1;
    long milliseconds = minutes * 60000;
    

    【讨论】:

    • 我知道...我不想使用计算。
    【解决方案4】:

    在 Java 8+ 中,使用 java.time

    java.time.Duration.ofMinutes(15).toMillis();
    

    【讨论】:

    • 调用需要 API 级别 26 。但目前大多数应用都支持最低 API 23
    • @Dharmishta 与 Java 8+,每个人都可以使用脱糖库而无需最低 api 级别并玩得开心。更多信息请查看documentation
    【解决方案5】:

    这会给你以毫为单位的时间。

    long currentTime = System.currentTimeMillis()
    Handler handler = new Handler(); 
    long waitTime = currentTime + (15*60*1000);
    handler.postDelayed(new Runnable() { 
         public void run() { 
              // Alert or do something here.
         } 
    }, waitTime); 
    

    这段代码休眠 15 分钟,然后执行处理程序的 run 方法。这样您就可以发出警报等...

    【讨论】:

      猜你喜欢
      • 2022-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 2010-10-12
      • 1970-01-01
      相关资源
      最近更新 更多