java 字符串时间相减,Java中使用什么方法把两个String类型的日期相减求出时间差啊?...

假设有两个日期。

第一个日期为:2012年9月13日2时3分4秒

第二个日期为:2012年8月12日0时0分0秒

求二者的时间差的代码如下

import java.text.SimpleDateFormat;

import java.util.Date;

public class TimeDifference2 {

private static int days; //天数

private static int hours; //时

private static int minutes; //分

private static int seconds; //秒

//第一个字符串

public static final String FIRST = "Sep 13 02:03:04 GMT 2012";

//第二个字符串

public static final String SECOND = "Aug 12 00:00:00 GMT 2012";

public static void main(String[] args) {

//通过字符串创建两个日期对象

Date firstDate = new Date(FIRST);

Date secondDate = new Date(SECOND);

//得到两个日期对象的总毫秒数

long firstDateMilliSeconds = firstDate.getTime();

long secondDateMilliSeconds = secondDate.getTime();

//得到两者之差

long firstMinusSecond = firstDateMilliSeconds - secondDateMilliSeconds;

//毫秒转为秒

long milliSeconds = firstMinusSecond;

int totalSeconds = (int)(milliSeconds / 1000);

//得到总天数

days = totalSeconds / (3600*24);

int days_remains = totalSeconds % (3600*24);

//得到总小时数

hours = days_remains / 3600;

int remains_hours = days_remains % 3600;

//得到分种数

minutes = remains_hours / 60;

//得到总秒数

seconds = remains_hours % 60;

//打印结果

//第一个比第二个多32天2小时3分4秒

System.out.print("第一个比第二个多");

System.out.println(days+"天"+hours+"小时"+minutes+"分"+seconds+"秒");

}

}

取消

评论

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
时分时间字符串相减,可以先将它们转换为LocalTime对象,并补充日期信息,然后再使用Duration类计算它们之间的时间差,并将结果转换为int类型的秒数。示例代码如下: ```java import java.time.Duration; import java.time.LocalTime; import java.time.LocalDateTime; public class TimeSubtraction { public static void main(String[] args) { String time1Str = "10:30"; // 时间1字符串 String time2Str = "09:15"; // 时间2字符串 LocalDateTime dateTime1 = LocalDateTime.of(2022, 3, 1, LocalTime.parse(time1Str).getHour(), LocalTime.parse(time1Str).getMinute()); // 转换为LocalDateTime对象 LocalDateTime dateTime2 = LocalDateTime.of(2022, 3, 1, LocalTime.parse(time2Str).getHour(), LocalTime.parse(time2Str).getMinute()); // 转换为LocalDateTime对象 Duration duration = Duration.between(dateTime2, dateTime1); // 计算时间差 int seconds = (int) duration.getSeconds(); // 转换为int类型的秒数 System.out.println("Time1: " + dateTime1.toLocalTime()); System.out.println("Time2: " + dateTime2.toLocalTime()); System.out.println("Seconds: " + seconds); } } ``` 在上面的示例,我们将时间1和时间2的字符串赋值给`time1Str`和`time2Str`变量,然后先使用`LocalTime.parse()`方法将它们转换为LocalTime对象,再使用`LocalDateTime.of()`方法将它们补充为完整的日期时间对象。接着,我们使用`Duration.between()`方法计算时间1和时间2的时间差,并使用`getSeconds()`方法将其转换为秒数。最后,我们将结果输出到控制台。 需要注意的是,这种方式会把日期设为2022年3月1日,如果需要计算跨越不同日期时间差,需要自行处理日期信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值