我想记录System.currentTimeMillis()用户在我的程序中开始使用时的时间.当他完成后,我会减去当前System.currentTimeMillis()从start变量,我想向他们展示使用人类可读的格式经过诸如"XX小时XX分钟,XX秒",甚至是"XX分钟,XX秒",因为它的时间一个小时不太可能带人
最好的方法是什么?
我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题.答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西.见答案.
对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby.我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序.我的Java设置如下:
>java -version
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud) datetime android android-gradle-plugin threetenbp threetenabp
这是一个倒数计时器,我想在几分钟和几秒钟内打印.ex(300000mili)5分钟,计数4:60,4:59 ......这是我的代码的一部分
final MyCounter timer = new MyCounter(300000,1000);
blue.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
timer.start();
}
});
}
public class MyCounter extends CountDownTimer {
public MyCounter(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
blue.setText("Live");
}
@Override
public void onTick(long millisUntilFinished) {
blue.setText((millisUntilFinished/60000)+":"+(millisUntilFinished/5000));
// i tried this
}
}
Run Code Online (Sandbox Code Playgroud)
如何在失踪20秒后振动?什么时候结束?谢谢,抱歉我的英语不好
我想比较字符串:
开始时间:10:00结束时间:12:00
实际上,有一个包含我的值和结束时间数组的开始时间数组.在这种情况下,它的结构如下:
StartTimes[0] = "10:00"
EndTimes[0] = "12:00"
Run Code Online (Sandbox Code Playgroud)
什么是最好的方法(使用java)来找出时间之间的持续时间.开始时间始终在结束时间之前.我应该尝试使用正则表达式按分钟和小时分隔字符串,然后解析小时并解析分钟,比较,然后使用该信息确定差异,还是他们的方法来比较java中的时间?请注意,这些时间是24小时格式,因此对于前者.下午1:00将显示为13:00.
如果两次提出同样的问题被认为是垃圾邮件,我真的很抱歉,因为我已经在一小时前询问过反向计时器了.
但现在新的问题是,我再也无法引起任何人对这个问题的关注.我已经成功编码了计时器,感谢你们,但后来我试着将秒转换为hh:mm:ss格式,但它没有用.而不是继续前进到00:00:00.它只显示我编码的时间,就是这样.
这是我的代码.
import java.util.Timer;
import java.util.TimerTask;
public class countdown extends javax.swing.JFrame {
public countdown() {
initComponents();
Timer timer;
timer = new Timer();
timer.schedule(new DisplayCountdown(), 0, 1000);
}
class DisplayCountdown extends TimerTask {
int seconds = 5;
int hr = (int)(seconds/3600);
int rem = (int)(seconds%3600);
int mn = rem/60;
int sec = rem%60;
String hrStr = (hr<10 ? "0" : "")+hr;
String mnStr = (mn<10 ? "0" : "")+mn;
String secStr = (sec<10 ? "0" : "")+sec;
public void run() …Run Code Online (Sandbox Code Playgroud) 我有毫秒值,并希望显示从hh:mm:ss格式的当前毫秒值减去5分钟的时间.
码
String str = String.format("%02d:%02d:%02d",
TimeUnit.MILLISECONDS.toHours((cal.getTimeInMillis()-300000)),
TimeUnit.MILLISECONDS.toMinutes(cal.getTimeInMillis()-300000) -
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(cal.getTimeInMillis()-300000)),
TimeUnit.MILLISECONDS.toSeconds(cal.getTimeInMillis()-300000) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(cal.getTimeInMillis()-300000)));
Toast.makeText(getApplicationContext(), "Alarm Set."+str, Toast.LENGTH_LONG).show()
Run Code Online (Sandbox Code Playgroud)
现在输出
Alarm Set. 386467:25:00
需要输出
Alarm Set. 07:25:00
正如你所看到的那样minutes,seconds并且正在恢复安静,但是存在一些问题hours.
PS
我提到这篇文章.他们说它工作正常.但不知道为什么不在我的情况下.
2.我确定我想要得到的是小时值,即07我已经设置了使用的值,Calendar.HOUR并且如果我使用它也会显示cal.get(Calendar.HOUR)它.当然是.cal当然是Calendar类的对象.
替代方案
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
String str1 = sdf.format(new Date(cal.getTimeInMillis()-300000));
Toast.makeText(getApplicationContext(), "Alarm Set."+str1, Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud) 我正在尝试计算两个小时之间的差异。时间格式必须是 hh:mm:ss!我实现了这个代码:
public static String timeDifference(long timeDifference1) {
long timeDifference = timeDifference1 / 1000;
int h = (int) (timeDifference / (3600));
int m = (int) ((timeDifference - (h * 3600)) / 60);
int s = (int) (timeDifference - (h * 3600) - m * 60);
return String.format("%02d:%02d:%02d", h, m, s);
}
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String timeStart = sc.next();
String timeStop = sc.next();
char lol[]=timeStop.toCharArray();
if(lol[0]=='0' && lol[1]=='0'){ …Run Code Online (Sandbox Code Playgroud) 可能重复:
如何将毫秒转换为"hh:mm:ss"格式?
我打赌很多人需要一个计时器,包括:minutes : seconds : hundreds of seconds.显然,你开始:
` public TimeGame(){
timer = new Timer(10, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
counter++;
}
});
timer.start();
}`
Run Code Online (Sandbox Code Playgroud)
然后你需要调用一个改变这个计数器的方法:minutes : seconds : hundreds of seconds.
`private String timeTransfer(){
minutes = counter/6000;
counter = counter - (minutes*6000);
seconds = counter/100 ;
counter = counter - (seconds*100);
milliseconds = counter;
return minutes + " : " + seconds + " : " + miliseconds;
}`
Run Code Online (Sandbox Code Playgroud)
但我的方法有一个错误.一旦它达到100毫秒,它就会跳回到0.通常它必须放 …
java ×7
android ×3
date ×2
datetime ×2
time ×2
timer ×2
calendar ×1
comparison ×1
eclipse ×1
string ×1
threetenabp ×1
threetenbp ×1
timeunit ×1