LocalTime
类与其他名称以Local为前缀的类相似,但只处理时间。这个类对于表示基于人类的时间很有用,比如电影时间,或者本地图书馆的开馆和闭馆时间。
java.time.LocalTime类是一个不可变的类,它表示一个没有时区信息的时间,如'28:28:38.111'。
在这篇文章中,我们将结合实例讨论LocalTime类的重要API。
为了更好地理解,让我们把方法分类为它们的用法,并通过例子来解释。
static LocalTime now()
- 从默认时区的系统时钟中获取当前时间。static LocalTime now(Clock clock)
- 从指定的时钟获取当前时间。static LocalTime now(ZoneId zone)
- 从指定时区的系统时钟获取当前时间。int getHour()
- 获得每天的小时字段。int getMinute()
- 获得小时中的分钟字段。int getNano()
- 获得秒的纳米字段。int getSecond()
- 获得分钟内的秒字段。LocalTime plusHours(long hoursToAdd)
- 返回该LocalTime的副本,并增加指定的小时数。LocalTime plusMinutes(long minutesToAdd)
- 返回此LocalTime的副本,并添加指定的分钟数。LocalTime plusNanos(long nanosToAdd)
- 返回此LocalTime的副本,并添加指定的纳秒数。LocalTime plusSeconds(long secondstoAdd)
- 返回此LocalTime的副本,并添加指定的秒数。LocalTime minusHours(long hoursToSubtract)
- 返回此LocalTime的副本,并减去指定的小时数。LocalTime minusMinutes(long minutesToSubtract)
- 返回此LocalTime的副本,并减去指定的分钟数。LocalTime minusNanos(long nanosToSubtract)
- 返回此LocalTime的副本,并减去指定的纳秒数。LocalTime minusSeconds(long secondsToSubtract)
- 返回此LocalTime的副本,并减去指定的秒数。int compareTo(LocalTime other)
- 将此时间与另一时间相比较。boolean isAfter(LocalTime other)
- 检查这个时间是否在指定时间之后。boolean isBefore(LocalTime other)
- 检查此时间是否在指定时间之前。static LocalTime parse(CharSequence text)
- 从一个文本字符串(如10:15)中获取一个LocalTime的实例。static LocalTime parse(CharSequence text, DateTimeFormatter formatter)
- 使用特定的格式从文本字符串中获得一个LocalTime的实例。String format(DateTimeFormatter formatter)
- 使用指定的格式化器对这个时间进行格式化。LocalTime类为当前时间和特定时间对象分别提供了以下API。
static LocalTime now()
- 从默认时区的系统时钟中获取当前时间。static LocalTime now(Clock clock)
- 从指定的时钟获取当前时间。static LocalTime now(ZoneId zone)
- 从指定时区的系统时钟中获取当前时间。import java.time.Clock;
import java.time.LocalTime;
import java.time.ZoneId;
//*/*
/* Program to demonstrate LocalTime Class APIs.
/* @author javaguides.net
/*
/*/
public class LocalTimeExample {
public static void main(String[] args) {
createLocalTime();
}
private static void createLocalTime() {
// Current Time
LocalTime localTime = LocalTime.now();
System.out.println(localTime);
// Specific Time
LocalTime localTime2 = LocalTime.of(4, 30, 45);
System.out.println(localTime2);
LocalTime localTime3 = LocalTime.now(Clock.systemDefaultZone());
System.out.println(localTime3);
LocalTime localTime4 = LocalTime.now(Clock.system(ZoneId.of("Indian/Cocos")));
System.out.println(localTime4);
}
}
输出。
17:38:35.349
04:30:45
17:38:35.350
18:38:35.350
LocalTime类提供以下API,从LocalTime中获取小时、分钟、秒。
int getHour()
- 获取一天中的小时字段。int getMinute()
- 获取小时中的分钟字段。int getNano()
- 获得秒的纳数字段。int getSecond()
- 获得分钟内的秒字段。import java.time.LocalTime;
//*/*
/* Program to demonstrate LocalTime Class APIs.
/* @author javaguides.net
/*
/*/
public class LocalTimeExample {
public static void main(String[] args) {
getHourMinuteSecondfromLocalTime();
}
private static void getHourMinuteSecondfromLocalTime() {
LocalTime localTime = LocalTime.now();
System.out.println("Gets the hour-of-day field : " + localTime.getHour());
System.out.println("Gets the minute-of-hour field : " + localTime.getMinute());
System.out.println("Gets the second-of-minute field : " + localTime.getSecond());
System.out.println("Gets the nano-of-second field : " + localTime.getNano());
}
}
输出。
Gets the hour-of-day field : 17
Gets the minute-of-hour field : 40
Gets the second-of-minute field : 30
Gets the nano-of-second field : 182000000
LocalTime类提供以下API,用于在LocalTime中添加或减去小时、分钟和秒。
LocalTime plusHours(long hoursToAdd)
- 返回该LocalTime的副本,并添加指定的小时数。LocalTime plusMinutes(long minutesToAdd)
- 返回此LocalTime的副本,并添加指定的分钟数。LocalTime plusNanos(long nanosToAdd)
- 返回此LocalTime的副本,并添加指定的纳秒数。LocalTime plusSeconds(long secondstoAdd)
- 返回此LocalTime的副本,并添加指定的秒数。LocalTime minusHours(long hoursToSubtract)
- 返回此LocalTime的副本,并减去指定的小时数。LocalTime minusMinutes(long minutesToSubtract)
- 返回此LocalTime的副本,并减去指定的分钟数。LocalTime minusNanos(long nanosToSubtract)
- 返回此LocalTime的副本,并减去指定的纳秒数。LocalTime minusSeconds(long secondsToSubtract)
- 返回此LocalTime的副本,并减去指定的秒数。import java.time.LocalTime;
//*/*
/* Program to demonstrate LocalTime Class APIs.
/* @author javaguides.net
/*
/*/
public class LocalTimeExample {
public static void main(String[] args) {
addorSubtractHoursMinutesAndSecondstoLocalTime();
}
private static void addorSubtractHoursMinutesAndSecondstoLocalTime() {
LocalTime localTime = LocalTime.now();
System.out.println("Current Time : " + localTime);
// LocalTime's plus methods
System.out.println("Addition of Hours : " + localTime.plusHours(2));
System.out.println("Addition of Minutes : " + localTime.plusMinutes(30));
System.out.println("Addition of Seconds : " + localTime.plusSeconds(20));
System.out.println("Addition of Nanos : " + localTime.plusNanos(60000));
// LocalTime's minus methods
System.out.println("Subtraction of Hours : " + localTime.minusHours(2));
System.out.println("Subtraction of Minutes : " + localTime.minusMinutes(30));
System.out.println("Subtraction of Seconds : " + localTime.minusSeconds(20));
System.out.println("Subtraction of Nanos : " + localTime.minusNanos(60000));
}
}
输出。
Current Time : 17:41:55.127
Addition of Hours : 19:41:55.127
Addition of Minutes : 18:11:55.127
Addition of Seconds : 17:42:15.127
Addition of Nanos : 17:41:55.127060
Subtraction of Hours : 15:41:55.127
Subtraction of Minutes : 17:11:55.127
Subtraction of Seconds : 17:41:35.127
Subtraction of Nanos : 17:41:55.126940
LocalTime类提供了以下API来比较Java中的LocalTime对象。
int compareTo(LocalTime other)
- 将此时间与另一时间相比较。boolean isAfter(LocalTime other)
- 检查这个时间是否在指定时间之后。boolean isBefore(LocalTime other)
- 检查这个时间是否在指定时间之前。import java.time.LocalTime;
//*/*
/* Program to demonstrate LocalTime Class APIs.
/* @author javaguides.net
/*
/*/
public class LocalTimeExample {
public static void main(String[] args) {
compareLocalTimeObjects();
}
private static void compareLocalTimeObjects() {
LocalTime localTime1 = LocalTime.of(9, 10, 50);
LocalTime localTime2 = LocalTime.of(9, 10, 50);
LocalTime localTime3 = LocalTime.of(11, 45, 20);
// compareTo() example
if (localTime1.compareTo(localTime2) == 0) {
System.out.println("localTime1 and localTime2 are equal");
} else {
System.out.println("localTime1 and localTime2 are not equal");
}
// isBefore() example
if (localTime2.isBefore(localTime3)) {
System.out.println("localTime2 comes before localTime3");
}
// isAfter() example
if (localTime3.isAfter(localTime1)) {
System.out.println("localTime3 comes after localTime1");
}
}
}
输出。
localTime1 and localTime2 are equal
localTime2 comes before localTime3
localTime3 comes after localTime1
LocalTime类提供了以下API,用于将字符串转换为java中的LocalTime。
static LocalTime parse(CharSequence text)
- 从文本字符串(如10:15)中获取一个LocalTime的实例。static LocalTime parse(CharSequence text, DateTimeFormatter formatter)
- 使用特定的格式从文本字符串中获得一个LocalTime的实例。import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
//*/*
/* Program to demonstrate LocalTime Class APIs.
/* @author javaguides.net
/*
/*/
public class LocalTimeExample {
public static void main(String[] args) {
convertStringToLocalTime();
}
private static void convertStringToLocalTime() {
LocalTime isoTime = LocalTime.parse("10:15:30", DateTimeFormatter.ISO_LOCAL_TIME);
System.out.println(isoTime);
// hour-of-day (0-23)
LocalTime localTime = LocalTime.parse("22:45:30", DateTimeFormatter.ofPattern("HH:mm:ss"));
System.out.println(localTime);
// clock-hour-of-am-pm (1-24)
LocalTime localTime2 = LocalTime.parse("22:45:30", DateTimeFormatter.ofPattern("kk:mm:ss"));
System.out.println(localTime2);
// clock-hour-of-am-pm (1-12)
LocalTime localTime3 = LocalTime.parse("10:45:30 PM", DateTimeFormatter.ofPattern("hh:mm:ss a"));
System.out.println(localTime3);
// hour-of-am-pm (0-11)
LocalTime localTime4 = LocalTime.parse("10:45:30 AM", DateTimeFormatter.ofPattern("KK:mm:ss a"));
System.out.println(localTime4);
}
}
输出。
10:15:30
22:45:30
22:45:30
22:45:30
10:45:30
LocalTime类提供了以下API,可以在java中把LocalTime转换为String。
String format(DateTimeFormatter formatter)
- 使用指定的格式化器对该时间进行格式化。import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
//*/*
/* Program to demonstrate LocalTime Class APIs.
/* @author javaguides.net
/*
/*/
public class LocalTimeExample {
public static void main(String[] args) {
convertLocalTimeToString();
}
private static void convertLocalTimeToString(){
LocalTime localTime = LocalTime.now();
// ISO Format
DateTimeFormatter timeFormatter = DateTimeFormatter.ISO_LOCAL_TIME;
System.out.println(localTime.format(timeFormatter));
// hour-of-day (0-23)
DateTimeFormatter timeFormatter1 = DateTimeFormatter
.ofPattern("HH:mm:ss");
System.out.println(localTime.format(timeFormatter1));
// clock-hour-of-am-pm (1-24)
DateTimeFormatter timeFormatter2 = DateTimeFormatter
.ofPattern("kk:mm:ss");
System.out.println(localTime.format(timeFormatter2));
// clock-hour-of-am-pm (1-12)
DateTimeFormatter timeFormatter3 = DateTimeFormatter
.ofPattern("hh:mm:ss a");
System.out.println(localTime.format(timeFormatter3));
// hour-of-am-pm (0-11)
DateTimeFormatter timeFormatter4 = DateTimeFormatter
.ofPattern("KK:mm:ss a");
System.out.println(localTime.format(timeFormatter4));
}
}
输出。
17:47:10.932
17:47:10
17:47:10
05:47:10 PM
05:47:10 PM
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.javaguides.net/2018/08/java-8-localtime-class-api-guide.html
内容来源于网络,如有侵权,请联系作者删除!