下面我将为您详细介绍获取当前时间及实现时间倒计时功能的完整攻略,内容涵盖以下几个方面:
- 获取当前时间
Java 中获取当前时间有多种方法,下面介绍其中常用的两种方法:
方法一:使用 Java.util.Date 类
import java.util.Date;
public class TimeUtil {
public static void main(String[] args) {
// 获取当前时间
Date date = new Date();
System.out.println(date);
}
}
代码说明:
通过 Date()
方法来创建一个 Date 对象,这个对象表示当前时间。System.out.println(date)
可以将当前时间输出到控制台。
方法二:使用 Java.time.LocalDateTime 类
import java.time.LocalDateTime;
public class TimeUtil {
public static void main(String[] args) {
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
}
}
代码说明:
LocalDateTime.now()
可以获取当前本地时间。System.out.println(now)
可以将当前时间输出到控制台。
- 实现时间倒计时功能
接下来介绍如何实现时间倒计时功能,下面是具体示例:
示例一:实现倒计时功能
public class CountDownLatchTest {
public static void main(String[] args) throws InterruptedException {
// 倒计时3秒
int count = 3;
CountDownLatch countDownLatch = new CountDownLatch(count);
for (int i = 0; i < count; i++) {
new Thread(new Task(countDownLatch)).start();
}
// 等待倒计时结束
countDownLatch.await();
System.out.println("倒计时结束");
}
static class Task implements Runnable {
private CountDownLatch countDownLatch;
public Task(CountDownLatch countDownLatch) {
this.countDownLatch = countDownLatch;
}
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("倒计时" + countDownLatch.getCount());
countDownLatch.countDown();
}
}
}
代码说明:
使用 java.util.concurrent.CountDownLatch
类来实现倒计时功能,CountDownLatch
是一个阻塞类型的计数器。在该示例中,我们首先通过 CountDownLatch(count)
创建一个计数器,指定倒计数为3。接着创建3个线程,每个线程中执行一个定时任务,任务执行完后通过 countDownLatch.countDown()
函数将计数器减1。最后主线程在调用 countDownLatch.await()
方法时被阻塞,等待计数器变为0时输出 "倒计时结束"。
示例二:倒计时到指定时间
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
public class CountdownTimer {
private LocalDateTime targetDateTime;
public CountdownTimer(LocalDateTime targetDateTime){
this.targetDateTime = targetDateTime;
}
public void start() throws InterruptedException {
while (true){
LocalDateTime currentTime = LocalDateTime.now();
long seconds = ChronoUnit.SECONDS.between(currentTime, targetDateTime);
if (seconds <= 0){
System.out.println("倒计时结束");
break;
}
long hour = seconds / 3600;
long minute = (seconds - hour * 3600) / 60;
long second = (seconds - hour * 3600 - minute * 60);
System.out.print("剩余时间:");
System.out.printf("%02d", hour);
System.out.print(":");
System.out.printf("%02d", minute);
System.out.print(":");
System.out.printf("%02d", second);
System.out.println("");
Thread.sleep(1000);
}
}
public static void main(String[] args) throws InterruptedException {
LocalDateTime targetDateTime = LocalDateTime.of(2021, 12, 31, 23, 59, 59);
CountdownTimer countdownTimer = new CountdownTimer(targetDateTime);
countdownTimer.start();
}
}
代码说明:
在该示例中,我们通过 java.time.LocalDateTime
类来表示一个时间。首先通过创建一个 CountdownTimer
实例,指定目标时间。在 CountdownTimer.start()
方法的实现中,我们不停地获取当前时间并计算与目标时间之间的时间差,当时间差小于等于0时倒计时结束。在倒计时过程中,我们将时间差转化为小时、分钟和秒,并输出倒计时信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 获取当前时间及实现时间倒计时功能【推荐】 - Python技术站