蓝桥杯打卡:时间显示
题目描述
* 【问题描述】
小蓝要和朋友合作开发一个时间显示的网站。在服务器上,朋友已经获取
了当前的时间,用一个整数表示,值为从 1970 年 1 月 1 日 00:00:00 到当前时
刻经过的毫秒数。
现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要
显示出时分秒即可,毫秒也不用显示,直接舍去即可。
给定一个用整数表示的时间,请将这个时间对应的时分秒输出。
【输入格式】
输入一行包含一个整数,表示时间。
【输出格式】
输出时分秒表示的当前时间,格式形如 HH:MM:SS,其中 HH 表示时,值
为 0 到 23,MM 表示分,值为 0 到 59,SS 表示秒,值为 0 到 59。时、分、秒
不足两位时补前导 0。
* @author WeUse
解题思路
不到万不得已,关于时间的整个类都不要自己写,而是交给语言的API进行解析
Java中常用的时间
- 方法
System.currentTimeMills()
从1970-01-01 00:00:00
开始计数到当前时间的的毫秒值 - 类 Date
- 能够将一个
Long
的ms
值数据(从1970-01-01 00:00:00
开始计数的毫秒值)转换为具体的年月日 时分秒
,默认生成的对象是当前的时间对象 - 使用
getTime()
方法返回的是一个毫秒值
- 能够将一个
- 类
SimpleDateFormat()
给定一个时间格式化的字符串,那么生成的格式化对象就会按照这个字符串的形式输出"yyyy-MM-dd HH:mm:ss"
表示年月日 时分秒
此时的时间是24小时制"yyyy-MM-dd hh:mm:ss"
表示年月日 时分秒
此时的时间是12小时制"yyyy-MM-dd"
"HH:mm:ss"
- 其他的类似
- 最重要的还是记住格式化的字符串
- 大
M
用来表示月份,小m
用来表示分钟 - 大
H
用来表示24小时,小的h
用来表示12小时
代码
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Main { // 所有的时间类不到到万不得已不要自己写,交给语言的api
public static void main(String[] args) {
long start1 = System.currentTimeMillis();
long target1 = 46800999; // 改成输入函数即可
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // 设置北京时间
sdf.setTimeZone(TimeZone.getTimeZone("Eurpoe/London")); // 设置伦敦时间
Date startFormat1 = new Date(start1);
Date targetFormat1 = new Date(target1);
System.out.println(sdf.format(startFormat1));
System.out.println(sdf.format(targetFormat1));
}
}