传统写法:

/*
题目描述
小蓝要和朋友合作开发一个时间显示的网站。
在服务器上,朋友已经获取了当前的时间,用一个整数表示。
值为从1970 年1 月1 日00:00:00 到当前时刻经过的毫秒数。
现在,小蓝要在客户端显示出这个时间。
小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。
给定一个用整数表示的时间,请将这个时间对应的时分秒输出。
输入格式
输入第一行包含正整数T,表示存在T组测试数据,T不超过1000。
接下来T行,每行一个正整数表示时间。时间不超过10^18。
输出格式
输出T行,每行按照如下格式:
输出时分秒表示的当前时间,格式形如HH:MM:SS
其中HH 表示时,值为0 到23,MM 表示分,值为0 到59,SS 表示秒,值为0 到59。
时、分、秒不足两位时补前导0。
输入样例 复制
2
46800999
1618708103123
输出样例 复制
13:00:00
01:08:23
 */

//不使用api
package cn.meowrain;

import java.util.Scanner;
public class Main {
	public static void main(String[] args){
		Scanner scanner = new Scanner(System.in);
		int num = scanner.nextInt();
		for(int i = 0;i<num;i++){
			long time = scanner.nextLong();
			long hours = time/1000/60/60%24;
			long minutes = time/1000/60%60;
			long seconds = time/1000%60;
			if(hours < 10) {
				System.out.print("0" + hours + ":");
			}else {
				System.out.print(hours + ":");
			}
			if(minutes < 10) {
				System.out.print("0" + minutes + ":");
			}else {
				System.out.print(minutes + ":");
			}
			if(seconds < 10) {
				System.out.println("0" + seconds);
			}else {
				System.out.println(seconds);
			}
		}
	}
	
}

使用java api

//使用api
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Scanner;
/public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int num = scanner.nextInt();
	for(int i = 1;i<=num;i++){
			long time = scanner.nextLong();
			time -= 8 * 60 * 60 * 1000;
		//格式化输出
			System.out.println(new SimpleDateFormat("HH:mm:ss").format(new Date(time)));
		}
	}
}