java中两次之间小时的正确格式
Posted
技术标签:
【中文标题】java中两次之间小时的正确格式【英文标题】:Correct format for hours between two times in java 【发布时间】:2016-08-19 06:36:26 【问题描述】:我正在尝试计算 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();
我得到一个错误,分钟无法转换为字符串。我需要使用什么变量类型才能让它工作?
谢谢
【问题讨论】:
你想在剩余1中存储什么? airTime1 和 startTime1 之间的持续时间 我们可以在聊天chat.***.com/rooms/110302/… 中讨论这个问题 恐怕只有 20 个代表我才能在聊天室中输入内容 哈哈谢谢。我想它需要一段时间才能更新,因为它仍然显示错误 【参考方案1】:您遇到的基本问题是持续时间是与实际日期时间不同的概念。线条
Minutes difference = ((Minutes.minutesBetween(airTime1,startTime1)));
LocalTime remaining1 = formatter.parseLocalTime(difference);
没有意义,因为将持续时间转换为日期时间的想法没有意义。代表“3 分钟”的日期时间是多少?我能想象到的最接近的事情是一对日期时间,一个用于开始,一个用于结束,但这就是你已经拥有的。
分钟表示(或可能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中两次之间小时的正确格式的主要内容,如果未能解决你的问题,请参考以下文章
我如何使用 mysql 选择查询在“x 小时 y 分钟 z 秒”之类的词中获得 2 次之间的差异
PHFetchResults 日期过滤器没有为时间范围生成正确的结果