蓝桥杯打卡:时间显示
题目描述* 【问题描述】 小蓝要和朋友合作开发一个时间显示的网站。在服务器上,朋友已经获取 了当前的时间,用一个整数表示,值为从 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));
}
}



