java - Android:从两个字符串计算事件的持续时间

标签 java android datetime timestamp

所以我有一个时间戳,例如这个=1570312800 源还以字符串格式提供了开始时间和结束时间,所以假设基本上是从 18:00 到 01:00(下午 6 点到凌晨 1 点) 我想计算两个字符串(5 小时)之间的差异,将其转换为毫秒并将其添加到时间戳中。 让我陷入麻烦的是从 STRING 到 MILLISECONDS 的转换。

哪一种是最干净的方式?

示例代码:

Calendar c1 = Calendar.getInstance(android.icu.util.TimeZone.getTimeZone("UTC"));
Calendar c2 = Calendar.getInstance(android.icu.util.TimeZone.getTimeZone("UTC"));

SimpleDateFormat sdf = new SimpleDateFormat("HHmm");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));

try
{
    c1.setTime(sdf.parse("20:00"));
    c2.setTime(sdf.parse("1:00"));
}
catch (ParseException e)
{
    e.printStackTrace();
}

Log.d("TIME DIFFERENCE", String.valueOf(c2.getTimeInMillis()-c1.getTimeInMillis()));

最佳答案

解决此问题的一种方法是将字符串解析为 SimpleDateFormat,如下所示:

Calendar c1 = Calendar.getInstance(TimeZone.getTimeZone("UTC"));            
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));       

c1.setTime(sdf.parse("20:00"));
System.out.println(c1.getTimeInMillis());

关于java - Android:从两个字符串计算事件的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56890157/

相关文章:

java - 查找 Android 库包名称和版本

android - 在flutter中根据平台自动选择原生组件/小部件

javascript - moment.js 时间差显示错误结果

C# Datetime 到 ODBC Datetime 转换错误

java - 创建的可执行 jar 文件未执行

java - 将 Java 8 Optional 用于字符串列表作为输出

java - 当我在非事务中使用事务bean时,Spring会建立与数据库的连接吗?

安卓谷歌地图

c# - 处理 DateTime DBNull

java - Hibernate更新更改了数据库中的记录,但 future 的请求仍然返回缓存的值?