1. Overview
1.概述
Java provides a standard API to work with date and time. The Date Time API provides a method to parse a time in the string format to an equivalent LocalTime type for further manipulation.
日期时间 API 提供了一种方法,用于将字符串格式的时间解析为等效的 LocalTime 类型,以便进一步操作。
In this tutorial, we’ll explore how to add minutes to a time in the string format using the legacy Date API and the Date Time API.
在本教程中,我们将探讨如何使用传统的日期 API 和日期时间 API 在字符串格式的时间中添加分钟。
2. Using the Legacy Date API
2.使用传统日期 API
A time string shows time but with a string data type. Performing arithmetic operations with string is not feasible. Therefore, we need to parse a time string to an equivalent Date type before performing arithmetic operations.
时间字符串显示时间,但数据类型为字符串。使用字符串执行算术运算是不可行的。因此,在执行算术运算之前,我们需要将时间字符串解析为等效的 Date 类型。
The legacy Date API can parse a String time to Date. Let’s see an example that adds minutes using the legacy Date API:
传统的 Date API 可以将 String 时间解析为 Date. 下面我们来看一个使用传统 Date API 添加分钟的示例:
@Test
void givenTimeStringUsingSimpleDateFormat_whenIncrementedWith10Minutes_thenResultShouldBeCorrect() throws ParseException {
String timeString = "23:45";
SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
Date date = timeFormat.parse(timeString);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MINUTE, 10);
String result = timeFormat.format(cal.getTime());
assertEquals("23:55", result);
}
In the above code, we create a String variable with a time value. Then, we create the SimpleDateFormat object to format the time to the hour and minute representation.
在上述代码中,我们创建了一个带有时间值的 String 变量。然后,我们创建 SimpleDateFormat 对象,将时间格式化为小时和分钟表示法。
Next, we create a Date object and invoke parse() on timeFormat to convert the String time to a Date object for further manipulation.
接下来,我们创建一个 Date 对象,并在 timeFormat 上调用 parse() 将 String 时间转换为 Date 对象,以便进一步操作。
Additionally, we create a Calendar object and invoke the setTime() method on it. This method accepts the Date object we created earlier. Next, we invoke the add() method on the Calendar object to add 10 minutes to the time.
此外,我们还创建了一个 Calendar 对象,并在其中调用了 setTime() 方法。该方法接受我们之前创建的 Date 对象。接下来,我们调用 Calendar 对象上的 add() 方法,为时间添加 10 分钟。
Finally, we assert that the new time is equal to the expected time.
最后,我们断言新时间等于预期时间。
3. Using the Date Time API
3.使用日期时间应用程序接口
The Date Time API can easily parse a time string to LocalTime. Also, it provides methods to make arithmetic operations with time easy.
Date Time API 可以轻松地将时间字符串解析为 LocalTime 。此外,它还提供了一些方法,使时间的算术运算变得简单。
Here’s some example code that uses the Date Time API to add minutes to a time string:
下面是一些使用日期时间 API 在时间字符串中添加分钟的示例代码:
@Test
void givenTimeStringUsingLocalTime_whenIncrementedWith10Minutes_thenResultShouldBeCorrect() {
String timeString = "23:45";
LocalTime time = LocalTime.parse(timeString);
LocalTime newTime = time.plusMinutes(10);
String result = newTime.toString();
assertEquals("23:55", result);
}
Here, we create a time string and pass it to a LocalTime object. The LocalTime class provides various methods to perform arithmetic operations on time. Next, we invoke the plusMinutes() method on time to add 10 minutes to it.
在此,我们创建一个时间字符串,并将其传递给 LocalTime 对象。LocalTime 类提供了对时间进行算术运算的各种方法。接下来,我们调用 time 上的 plusMinutes() 方法,为其添加 10 分钟。
Finally, we assert that the new time is equal to the expected time.
最后,我们断言新时间等于预期时间。
4. Conclusion
4.结论
In this article, we learned two ways to add minutes to a time string. Compared to the legacy Date API, the Date Time API makes it easy to manipulate time and perform arithmetic operations.
在本文中,我们学习了向时间字符串添加分钟的两种方法。与传统的日期 API 相比,日期时间 API 可以轻松地操作时间和执行算术运算。
As always, the source code for the examples is available over on GitHub.
与往常一样,这些示例的源代码可在 GitHub 上获取。