相关疑难解决方法(0)

计算两个Java日期实例之间的差异

java.util.Date在Scala中使用Java的类,想要比较一个Date对象和当前时间.我知道我可以使用getTime()来计算delta:

(new java.util.Date()).getTime() - oldDate.getTime()
Run Code Online (Sandbox Code Playgroud)

但是,这只留下了一个long代表毫秒.是否有更简单,更好的方式来获得时间增量?

java time date timedelta java.util.date

416
推荐指数
19
解决办法
60万
查看次数

如何在Android Project中使用ThreeTenABP

我正在添加这个问题,因为我是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

169
推荐指数
3
解决办法
2万
查看次数

如何将毫秒转换为"hh:mm:ss"格式?

我糊涂了.在绊倒这个线程之后,我试图弄清楚如何格式化具有该格式的倒数计时器hh:mm:ss.

这是我的尝试 -

//hh:mm:ss
String.format("%02d:%02d:%02d", 
    TimeUnit.MILLISECONDS.toHours(millis),
    TimeUnit.MILLISECONDS.toMinutes(millis) - 
    TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
    TimeUnit.MILLISECONDS.toSeconds(millis) - 
    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));   
Run Code Online (Sandbox Code Playgroud)

所以,当我尝试一个类似的值3600000ms,我得到01:59:00,这是错误的,因为它应该是01:00:00.显然我的逻辑有问题,但此刻,我看不出它是什么!

有人可以帮忙吗?

编辑 -

固定它.这是格式化毫秒hh:mm:ss格式的正确方法-

//hh:mm:ss
String.format("%02d:%02d:%02d", 
    TimeUnit.MILLISECONDS.toHours(millis),
    TimeUnit.MILLISECONDS.toMinutes(millis) - 
    TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
    TimeUnit.MILLISECONDS.toSeconds(millis) - 
    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))));
Run Code Online (Sandbox Code Playgroud)

问题是这个TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)).应该是这样的TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)).

java time-format countdowntimer

165
推荐指数
14
解决办法
20万
查看次数

如何格式化java中的持续时间?(例如格式H:MM:SS)

我想用H:MM:SS这样的模式格式化持续时间(以秒为单位).java中的当前实用程序旨在格式化时间而不是持续时间.

java duration date-formatting

148
推荐指数
14
解决办法
12万
查看次数

在java中计算日期/时间差异

我想计算2小时/分钟/秒之间的差异.

我的代码在这里有点问题:

String dateStart = "11/03/14 09:29:58";
String dateStop = "11/03/14 09:33:43";

// Custom date format
SimpleDateFormat format = new SimpleDateFormat("yy/MM/dd HH:mm:ss");  

Date d1 = null;
Date d2 = null;
try {
    d1 = format.parse(dateStart);
    d2 = format.parse(dateStop);
} catch (ParseException e) {
    e.printStackTrace();
}    

// Get msec from each, and subtract.
long diff = d2.getTime() - d1.getTime();
long diffSeconds = diff / 1000;         
long diffMinutes = diff / (60 * 1000);         
long diffHours = diff …
Run Code Online (Sandbox Code Playgroud)

java time

143
推荐指数
9
解决办法
38万
查看次数

如何将毫秒转换为人类可读的形式?

我需要将任意数量的毫秒转换为Days,Hours,Minutes Second.

例如:10天,5小时,13分钟,1秒.

time date string-formatting datetime-format

116
推荐指数
7
解决办法
15万
查看次数

将秒值转换为小时分钟秒?

我一直在尝试将秒值(在BigDecimal变量中)转换为editText中的字符串,如"1小时22分33秒"或类似的东西.

我试过这个:

String sequenceCaptureTime = "";
BigDecimal roundThreeCalc = new BigDecimal("0");
BigDecimal hours = new BigDecimal("0");
BigDecimal myremainder = new BigDecimal("0");
BigDecimal minutes = new BigDecimal("0");
BigDecimal seconds = new BigDecimal("0");
BigDecimal var3600 = new BigDecimal("3600");
BigDecimal var60 = new BigDecimal("60");
Run Code Online (Sandbox Code Playgroud)

(我有一个roundThreeCalc,这是秒的值,所以我尝试在这里转换它.)

hours = (roundThreeCalc.divide(var3600));
myremainder = (roundThreeCalc.remainder(var3600));
minutes = (myremainder.divide(var60));
seconds = (myremainder.remainder(var60));
sequenceCaptureTime =  hours.toString() + minutes.toString() + seconds.toString();
Run Code Online (Sandbox Code Playgroud)

然后我将editText设置为sequnceCaptureTime String.但那没用.它每次强制关闭应用程序.我完全超出了我的深度,非常感谢任何帮助.快乐的编码!

java string android bigdecimal android-edittext

91
推荐指数
12
解决办法
20万
查看次数

将毫秒转换为分钟和秒?

我查看过以前的问题,但没有人得到我想要的答案.如何将StopWatch方法的毫秒转换为分钟和秒?我有:

 watch.start();
Run Code Online (Sandbox Code Playgroud)

启动秒表和

  watch.stop();
Run Code Online (Sandbox Code Playgroud)

停下手表 我以后有

  watch.getTime();
Run Code Online (Sandbox Code Playgroud)

返回毫秒.我希望它能在秒和分钟内返回.我该怎么做呢?我正在寻找一种方法来做到这一点,而不是乘以/除以1000,而是一种方法,使整个计算更具可读性,更不容易出错.

java time stopwatch type-conversion watch

65
推荐指数
12
解决办法
18万
查看次数

如何将currentTimeMillis转换为可读日期格式?

我想使用currentTimeMillis两次,所以我可以计算持续时间,但我也想以用户可读的格式显示时间和日期.我遇到麻烦currentTimeMillis虽然对计算有好处,但我看不到内置函数转换为好时间或时间/日期.

我用

android.text.format.DateFormat df = new android.text.format.DateFormat();
df.format("yyyy-MM-dd kk:mm:ss", new java.util.Date());
Run Code Online (Sandbox Code Playgroud)

为了产生美好的时间和日期,我最终想做的是将我的结果currentTimeMillis价值 显示出来android.text.format.DateFormat df = new android.text.format.DateFormat();

例如

android.text.format.DateFormat df = currentTimeMillis();
Run Code Online (Sandbox Code Playgroud)

当我尝试我得到

类型不匹配:无法从long转换为DateFormat

我试图使用一些铸造,但无法看到如何实现这一目标.

java time datetime android date

55
推荐指数
2
解决办法
12万
查看次数

如何以这种格式转换秒数"HH:mm:ss"

我想以这种格式转换第二个/毫秒"HH:mm:ss"(对于例子,从5秒到00:00:05).我试图以这种方式获得这种格式:

int millis = 5000;
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
String time = df.format(millis);
Run Code Online (Sandbox Code Playgroud)

这样,我得到"01:00:05"而不是"00:00:05".我哪里错了?

java time android

27
推荐指数
4
解决办法
5万
查看次数