答案为:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long n = scan.nextLong();//考虑到我们输入的数要到10的18次,所以使用long
n = n/1000;//因为题目要求是精确到秒,但输入的是毫秒,则/1000
n = n%(24*60*60);//取余一天的时间相当于只是去看一天的时间
long hour = n/60/60;//除以一小时的秒数剩下的就是小时数
long minute = n/60%60;//先除以一分钟的秒数,便为分钟数,但我们需要的是最后剩下的那一小时的剩下的分钟数,则%60
long second = n%60;//同上分钟
System.out.printf("%02d:%02d:%02d",hour,minute,second);//格式化输出日期
}
}`
最后忘记加个:scan.close();
关于printf输出日期格式的方法可以看一下下面:
这里是引用printf的常用格式控制:
% 0m.n格式字符
下面对组成格式说明的各项加以说明:
① % 格式说明的起始符号,不可缺少。
② 0 有0表示指定空位填0,如省略表示指定空位不填。
③ m.n m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。