import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;
public class TimeAddition {
public static void main(String args[]) throws ParseException {
String i = "0:10";
String a = "0:15";
// Converting String to Date format
DateFormat sdf = new SimpleDateFormat("hh:mm");
Date iTime = sdf.parse(i);
Date aTime = sdf.parse(a);
//仅通过获取时间添加两个日期时间
long totalTime = iTime.getTime() + aTime.getTime();
System.out.println("Total time in millisecond = " + totalTime);
long millis = totalTime;
//将以毫秒为单位的结果转换为“hh: mm: ss”
String hms = 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)));
System.out.println("Time format " + hms);
}
}
//输出预期00:25:00
当您对日期
对象调用getTime()
,它返回自1970年1月1日00:00:00 GMT以来的毫秒数。
因此,当您在下面的语句中调用getTime()
两次时
long totalTime = iTime.getTime() + aTime.getTime();
自 1970 年 1 月 1 日 00:00:00 GMT 以来,您已添加了两次毫秒。因此,您必须减少一次才能获得所需的值。请参阅以下代码片段:
... //your code
String b = "0:00";
// Converting String to Date format
DateFormat sdf = new SimpleDateFormat("hh:mm");
... //your code
Date bTime = sdf.parse(b);
// Adding two date time only by getting time
long totalTime = iTime.getTime() + aTime.getTime() -bTime.getTime(); //subtracting extra value
System.out.println("Total time in millisecond = " + totalTime);
long millis = totalTime;
// Converting result in milliseconds to "hh:mm:ss"
sdf = new SimpleDateFormat("HH:mm:ss");
String hms = sdf.format(new Date(totalTime));
System.out.println("Time format " + hms);
我采取了另一种方法将totalTime
转换为所需的格式。
long totalTime = iTime.getTime() + aTime.getTime() - (2 * sdf.parse("0:0").getTime());
应该可以解决这个问题。
Date.getTime
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来由此 Date 对象表示的毫秒数。
看起来你想增加持续时间,Java 8中有一个类来表示:
Duration d1 = Duration.ofMinutes(10);
Duration d2 = Duration.ofMinutes(15);
Duration d = d1.plus(d2); //25 minutes
然后需要将其格式化以供输出。围绕这一点有几个问题,例如:
请注意,如果持续时间少于一天,您可以使用:
LocalTime.MIDNIGHT.plus(d).format(DateTimeFormatter.ofPattern("HH:mm:ss"))
问题内容: 我有一个字符串‘2009-06-24 09:52:43.000’,我需要将其插入到表的DateTime列中。 但我不在乎时间,只想将其插入为2009-06-24 00:00:00.000 如何在T-SQL中做到这一点? 问题答案: 对于SQL Server 2005及以下版本: 对于SQL Server 2008及更高版本:
问题内容: 我需要在数据库上更改一些值。 我忘记为表格设置可空值,并且默认情况下将其设置为0000-00-00 00:00:00。 现在,我需要将该值转换为。 字段类型为“日期时间”。 我该怎么做? 我尝试使用典型的方法,但是它不起作用。 问题答案: 您首先需要将该列设置为可空: 然后更新值:
问题内容: 论坛成员 我在Java中遇到日期时间问题。实际上,我正在接收 格式为2012-02-27T01:10:10 的开始日期,并且我想将接收到的日期插入具有datetime数据类型的数据库中。 实际上,我尝试通过以下代码将收到的开始日期转换为日期时间 但是使用上面的代码,只有 日期被添加到我的数据库中,例如2012-02-27 00:00:00 我也想将时间添加到数据库中,但是当我将Simp
我想得到25个小时,以毫秒为单位,即90000000(25个小时,以毫秒为单位),有什么方法可以使用Java8日期和时间api动态计算吗?我正在尝试如下: 但似乎编译错误:
问题内容: 我最近接手了一个十年前创建的旧项目。它使用MySQL 5.1。 除其他外,我需要将默认字符集从latin1更改为utf8。 例如,我有这样的表: 我设置了自己的Mac来进行此工作。不用考虑太多,我运行了“ brew install mysql”,它安装了MySQL 5.7。所以我有一些版本冲突。 我下载了此数据库的副本并将其导入。 如果我尝试运行这样的查询: 我收到此错误: 我以为可以
本文向大家介绍JAVA中的日期时间类用法总结,包括了JAVA中的日期时间类用法总结的使用技巧和注意事项,需要的朋友参考一下 前言 好记性不如烂笔头,日期时间类那么花哨不如记下来多看两眼。 提示:以下是本篇文章正文内容,下面案例可供参考 一.日期时间类的包 代码如下(示例): 二.Data类 java.util.Date; Date类是我们之前常用的一个日期和时间的对象,此类在 java.util