gpt4 book ai didi

java - 如何将字符串值转换为其时间值

转载 作者:行者123 更新时间:2023-12-01 11:09:47 24 4
gpt4 key购买 nike

我在数据库中有一个名为出勤的表,并且有一列名为 noOfHours。它是一个字符串,其中有一列称为月份。我需要计算给定月份的总小时数,那么如何完成该任务?

示例:如果一名员工在 8 月份工作了 5 小时 45 分钟,那么另一天他工作了 4 小时 30 分钟,则总小时数应为 10 小时 15 分钟。我怎样才能完成这个任务?在我的出勤数据库表中,在 noOfHours 列中,这些值存储为“5h 45min”,所以请告诉我一种方法来执行此操作。

最佳答案

你正在做不必要的工作。将列类型更改为时间。但是回答你的问题,你可以将字符串转换为 Date 类型:

DateFormat dateFormat = new SimpleDateFormat("HH'h' mm'min'");
Date yourDate = dateFormat.parse(string);

要使其再次成为字符串,只需将 dateFormar.format(yourDate)

要对两个日期求和,您必须注意 Date 对象还包含日期信息,因此您必须仅使用小时和分钟信息。您可以使用 Calendar 类来完成此操作。

Calendar c1 = Calendar.getInstance(), c2 = Calendar.getInstance(), sum = Calendar.getInstance();
c1.setTime(yourDate);
c2.setTime(anotherDate);
sum.setTimeInMillis(0L);

sum.add(Calendar.HOUR_OF_DAY, c1.get(Calendar.HOUR_OF_DAY));
sum.add(Calendar.HOUR_OF_DAY, c2.get(Calendar.HOUR_OF_DAY));
sum.add(Calendar.MINUTE, c1.get(Calendar.MINUTE));
sum.add(Calendar.MINUTE, c2.get(Calendar.MINUTE));

现在您有了 sum 对象,其中包含您(两天)的总工作小时数和分钟数。不要忘记,您的时间可能超过 24 小时,因此您必须将 sum 中包含的天数乘以 24。

Integer numHours = sum.get(Calendar.DAY_OF_MONTH) * 24 + sum.get(Calendar.HOUR_OF_DAY);
Integer numMinutes = sum.get(Calendar.MINUTE);
String ret = numHours.toString() + "h " + numMinutes.toString() + "min";

关于java - 如何将字符串值转换为其时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32502339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com