java 毫秒转分钟和秒_java - 将毫秒转换为分钟和秒? - 堆栈内存溢出

===============>>#1 票数:159

我建议使用TimeUnit 。 您可以像这样使用它:

long minutes = TimeUnit.MILLISECONDS.toMinutes(millis);

long seconds = TimeUnit.MILLISECONDS.toSeconds(millis);

===============>>#2 票数:34

将毫秒转换为秒(除以1000)后,可以使用/ 60来获取分钟值,并使用% 60 (余数)来获取“秒数”值。

long millis = .....; // obtained from StopWatch

long minutes = (millis / 1000) / 60;

int seconds = (int)((millis / 1000) % 60);

===============>>#3 票数:13

tl; dr

Duration d = Duration.ofMillis( … ) ;

int minutes = d.toMinutesPart() ;

int seconds = d.toSecondsPart() ;

Java 9及更高版本

在Java 9和更高版本中,创建一个Duration并调用to…Part方法。 在这种情况下: toMinutesPart和toSecondsPart 。

捕获秒表的开始和停止。

Instant start = Instant.now();

Instant stop = Instant.now();

表示Duration对象中的经过时间。

Duration d = Duration.between( start , stop );

询问每个部分,分钟和秒。

int minutes = d.toMinutesPart();

int seconds = d.toSecondsPart();

您可能还想查看秒表是否运行了预期的时间。

Boolean ranTooLong = ( d.toDaysPart() > 0 ) || ( d.toHoursPart() > 0 ) ;

Java 8

在Java 8中, Duration类缺少to…Part方法。 您需要按照其他答案中所示进行数学运算。

long entireDurationAsSeconds = d.getSeconds();

或者让Duration进行数学运算。

long minutesPart = d.toMinutes();

long secondsPart = d.minusMinutes( minutesPart ).getSeconds() ;

间隔:2016-12-18T08:39:34.099Z / 2016-12-18T08:41:49.099Z

d.toString():PT2M15S

d.getSeconds():135

耗时:2M 15S

解析度

仅供参考, now方法的分辨率在Java 8和Java 9之间发生了变化。请参阅此问题 。

Java 9可以捕获高达10纳秒的分辨率的瞬间。 分辨率取决于计算机硬件的能力。 我在装有macOS Sierra的MacBook Pro Retina上看到微秒(十进制的六位数)。

Java 8只能捕获毫秒级的瞬间。 Clock的实现仅限于毫秒级的分辨率。 因此,您可以以纳秒为单位存储值,但只能以毫秒为单位捕获它们。

===============>>#4 票数:10

这只是基础数学。 1000毫秒= 1秒,60000毫秒= 1分钟; 这样吧

int seconds=(millis/1000)%60;

long minutes=((millis-seconds)/1000)/60;

===============>>#5 票数:7

这是完整的程序

import java.util.concurrent.TimeUnit;

public class Milliseconds {

public static void main(String[] args) {

long milliseconds = 1000000;

// long minutes = (milliseconds / 1000) / 60;

long minutes = TimeUnit.MILLISECONDS.toMinutes(milliseconds);

// long seconds = (milliseconds / 1000);

long seconds = TimeUnit.MILLISECONDS.toSeconds(milliseconds);

System.out.format("%d Milliseconds = %d minutes\n", milliseconds, minutes );

System.out.println("Or");

System.out.format("%d Milliseconds = %d seconds", milliseconds, seconds );

}

}

我在这里的“ 链接 ”中找到了该程序,并对其进行了详细说明。

===============>>#6 票数:7

我正在为Android创建一个mp3播放器应用,所以我这样做是为了获取当前时间和持续时间

private String millisecondsToTime(long milliseconds) {

long minutes = (milliseconds / 1000) / 60;

long seconds = (milliseconds / 1000) % 60;

String secondsStr = Long.toString(seconds);

String secs;

if (secondsStr.length() >= 2) {

secs = secondsStr.substring(0, 2);

} else {

secs = "0" + secondsStr;

}

return minutes + ":" + secs;

}

===============>>#7 票数:5

要获得手表上显示的实际时,分和秒,请尝试以下代码

val sec = (milliSec/1000) % 60

val min = ((milliSec/1000) / 60) % 60

val hour = ((milliSec/1000) / 60) / 60

===============>>#8 票数:4

X毫秒= X / 1000秒=(X / 1000)/ 60分钟

如果您有100,000毫秒,请将该值除以1,000,然后剩下100秒。 现在100/60 = 1.666〜分钟,但小数分钟无值,因此:用100%60 = 40秒找到余数,然后将整数除以100/60 = 1分钟,余数40秒。 答:1分40秒。

===============>>#9 票数:3

我不认为Java 1.5支持并发TimeUnit。 否则,我建议使用TimeUnit。 以下基于纯数学方法。

stopWatch.stop();

long milliseconds = stopWatch.getTime();

int seconds = (int) ((milliseconds / 1000) % 60);

int minutes = (int) ((milliseconds / 1000) / 60);

===============>>#10 票数:3

要将毫秒单位的时间直接转换为分钟:第二种格式,您可以使用此格式

String durationText = DateUtils.formatElapsedTime(timeInMillis / 1000));

这将以正确的格式返回带有时间的字符串。 它为我工作。

===============>>#11 票数:3

您可以尝试以这种方式进行:

从传递ms值

Long ms = watch.getTime();

getDisplayValue(ms)

Kotlin的实现:

fun getDisplayValue(ms: Long): String {

val duration = Duration.ofMillis(ms)

val minutes = duration.toMinutes()

val seconds = duration.minusMinutes(minutes).seconds

return "${minutes}min ${seconds}sec"

}

Java实现:

public String getDisplayValue(Long ms) {

Duration duration = Duration.ofMillis(ms);

Long minutes = duration.toMinutes();

Long seconds = duration.minusMinutes(minutes).getSeconds();

return minutes + "min " + seconds "sec"

}

===============>>#12 票数:0

这是一个简单的解决方案。 可以在任何方法中使用的示例调用:

StopWatch.start();

StopWatch.stop();

StopWatch.displayDiff(); 显示开始和停止之间以分钟和秒为单位的差异。 (经过的时间)import java.time.Duration; import java.time.Instant; public class StopWatch { private static Instant start; private static Instant stop; private void StopWatch() { // not called } public static void start() { start = Instant.now(); } public static void stop() { stop = Instant.now(); } public static void displayDiff() { Duration totalTime = Duration.between(start, stop); System.out.println(totalTime.toMinutes() + " Minutes " + totalTime.toMillis() / 1000 + " Seconds"); } }

===============>>#13 票数:0

package com.v3mobi.userpersistdatetime;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

import android.widget.Toast;

import java.util.Date;

import java.util.concurrent.TimeUnit;

public class UserActivity extends AppCompatActivity {

Date startDate;

Date endDate;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_user);

startDate = java.util.Calendar.getInstance().getTime(); //set your start time

}

@Override

protected void onStop() {

super.onStop();

endDate = java.util.Calendar.getInstance().getTime(); // set your end time

chekUserPersistence();

}

private void chekUserPersistence()

{

long duration = endDate.getTime() - startDate.getTime();

// long duration = 301000;

long diffInMinutes = TimeUnit.MILLISECONDS.toMinutes(duration); // minutes ok

long secs = (duration/1000) % 60; // minutes ok

Toast.makeText(UserActivity.this, "Diff "

+ diffInMinutes + " : "+ secs , Toast.LENGTH_SHORT).show();

System.out.println("Diff " + diffInMinutes +" : "+ secs );

Log.e("keshav","diffInMinutes -->" +diffInMinutes);

Log.e("keshav","secs -->" +secs);

finish();

}

}

===============>>#14 票数:0

您可以轻松地将毫秒转换为秒,分钟和小时。

val millis = **milliSecondsYouWantToConvert**

val seconds = (millis / 1000) % 60

val minutes = ((millis / 1000) / 60) % 60

val hours = ((millis / 1000) / 60) / 60

println("--------------------------------------------------------------------")

println(String.format("%02dh : %02dm : %02ds remaining", hours, minutes, seconds))

println("--------------------------------------------------------------------")

**RESULT :**

--------------------------------------------------------------------

01h : 23m : 37s remaining

--------------------------------------------------------------------

ask by translate from so

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值