Android - 在几分钟到一个时间hh.mm.ss

时间:2015-06-16 21:27:53

标签: java android date time

我有一个我目前无法解决的问题。 我已经用Google搜索并找到了一些解决方案,但所有这些解决方案都不符合我的问题。

所以我从SQL数据库中获得2个字符串,格式为hh:mm:ss。

第一个字符串是一个时间,例如" 14:30:00"第二个字符串是分钟值,例如" 00:15:00"

现在我想第一次添加第二次。 在此之后,我将尝试从此时间中减去实际时间以获得差异。

所有这一切都应该没有日期,只有时间。

如果有人可以帮助我会很好

2 个答案:

答案 0 :(得分:1)

首先,'时间'没有日期是无效的。 想想夏令时等等。

一种解决方案是创建两个日期对象(具有固定日期)并将其用于计算。 或者解析字符串并使用TimeUnit处理值。

请记住,不能只是逐个对时间段的各个部分求和(例如20:45:58 + 00:20:10 = 20:05:08) !

因此,如果您决定解析,请让您的生活更轻松,并使用http://developer.android.com/reference/java/util/concurrent/TimeUnit.html 将您的值带到基数(秒)进行计算并将结果带到您希望的格式。

Calendar类也可以是一个解决方案(但要记住夏令时!):

Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime( date );
cal.set( Calendar.HOUR_OF_DAY, 20 );
cal.set( Calendar.MINUTE, 15 );
cal.set( Calendar.SECOND, 0 );
cal.set( Calendar.MILLISECOND, 0 );
cal.add( Calendar.MINUTE, 22 );
date = cal.getTime();

答案 1 :(得分:1)

如果每次都使用相同的格式hh:mm:ss,您可以将字符串拆分为:。然后删除:并将字符串转换为整数。现在,您可以将3个int值(一个小时,一个用于分钟,一个用于秒)添加到第二个字符串,该字符串也像这样分割。 它有点不完整,因为你正在处理字符串,但它会起作用。