【蓝桥杯Java】时间显示

题目描述

小蓝要和朋友合作开发一个时间显示的网站。

在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 19701970 年 11 月 11 日 00:00:0000:00:00 到当前时刻经过的毫秒数。

现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。

给定一个用整数表示的时间,请将这个时间对应的时分秒输出。

输入描述

输入一行包含一个整数,表示时间。

输出描述

输出时分秒表示的当前时间,格式形如 HH:MM:SS,其中 HH 表示时,值为 00 到 2323,MM 表示分,值为 00 到 5959,SS 表示秒,值为 00 到 5959。时、分、秒 不足两位时补前导 00。

输入输出样例

输入

46800999

输出

13:00:00

思路分析

此题中,我们可以使用 SimpleDateFormat 类来帮助我们实现

其中的一些参数如下:

yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小时制(0-11)。
z:表示时区

代码实现

import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        long mills = scan.nextLong();
        Date date = new Date(mills);
        SimpleDateFormat ft = new SimpleDateFormat ("HH:mm:ss");
        System.out.println(ft.format(date));
        scan.close();
    }
}

其中输出格式可以任意选定,比如此题输出格式为 xx:xx:xx,我们就要指定为 HH:mm:ss,

如果想输出其他格式,我们可以任意转换,比如:

SimpleDateFormat ft = new SimpleDateFormat ("HH-mm-ss");

其输出格式就为:xx-xx-xx

经验分享 程序员 微信小程序 职场和发展