java判断两次间隔的时间_在java中两次之间的正确格式

我试图计算java中两次之间的小时数.我正在使用joda时间库来格式化它.该程序可以拉动在文本框和文本框中输入的时间.把它们放在localTime变量中:

LocalTime startTime1;

LocalTime airTime1;

LocalTime foamTime1;

LocalTime scTime1;

然后,开始按钮执行以下操作

DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm");

startTime1 = formatter.parseLocalTime(startField2.getText());

airTime1 = formatter.parseLocalTime(airField.getText());

foamTime1 = formatter.parseLocalTime(fTimeField2.getText());

scTime1 = formatter.parseLocalTime(remainingField2.getText());

然后我想计算airTime1和startTime1&之间的时间.我正在尝试使用以下内容:

DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm");

Minutes difference = ((Minutes.minutesBetween(airTime1,startTime1)));

LocalTime remaining1 = formatter.parseLocalTime(difference);

剩下的1应该保持airTime1&之间的持续时间值. startTime1.然后剩余将写入图像

Graphics g = image2.getGraphics();

g.setFont(g.getFont().deriveFont(30f));

g.drawString((String.valueOf(remaining1)), 100, 100);

g.dispose();

我最终得到一个错误,即分钟无法转换为字符串.我需要使用哪种变量类型才能使其工作?

谢谢

解决方法:

您遇到的根本问题是持续时间是与实际日期时间不同的概念.线条

Minutes difference = ((Minutes.minutesBetween(airTime1,startTime1)));

LocalTime remaining1 = formatter.parseLocalTime(difference);

没有意义,因为将持续时间转换为日期时间的想法没有意义.什么是代表“3分钟”的日期时间?我能想象的最接近的事情是一对日期时间,一个用于开始,一个用于结束,但这就是你已经拥有的.

Minutes表示(或者可能是the Hours representation,基于您声明的用例)实际上是您想要的,我认为您只是过度思考它.无需进一步转换,只需使用它来构建您想要的字符串:

// Get difference, same as before

Minutes difference = ((Minutes.minutesBetween(airTime1,startTime1)));

// Create string representation of difference

// (Minutes.toString() representation exists but is hard to read)

String diffStr = difference.getMinutes() / 60.0 + " hours" // for, e.g., "3.5 hours"

// Re-use your old graphics code with new string

Graphics g = image2.getGraphics();

g.setFont(g.getFont().deriveFont(30f));

g.drawString(diffStr, 100, 100);

g.dispose();

标签:java,datetime,time,netbeans,jodatime

来源: https://codeday.me/bug/20190711/1431128.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值