百度2017秋招-时间戳

xiaoxiao2021-02-28  109

题目大意:给出一个时间(秒为单位),然后将其转换为对应的年月日。

注意事项:unix中生成的时间戳精确到秒级别,而java中精确的毫秒级别,因此,在unix下输入的时间戳要先转换为java下对应的时间戳。(*1000操作)

解题思路:1)将unix时间戳转换为java下的时间戳。2)直接使用java下SimpleDateFormat()类对象的format()方法,将其转换。

代码如下:

package 百度; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; /** * @题目要求:Unix 时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX 时间(POSIX time), * 是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。 * Unix时间戳不仅被使用在 Unix 系统、类 Unix 系统中,也在许多其他操作系统中被广泛采用。 * Moment.js 是一个 Javascript 中用来处理时间的库,给定 Unix 时间戳,他能够返回当前的年月日。你可以实现这个功能吗? * 提示:4年一闰100年不闰400年又闰 * @输入:输入不超过50行,每行包含一个整数 x 表示一个 Unix 时间戳。(0<=x<=10^10) * @输出:对于每一行,返回 yyyy mm dd 格式,表示对应的年月日。 * * @测试输入: * 103424 * 1368864000 * @测试输出: * 1970 01 02 * 2013 05 18 * * @author 崔洪振367 * @version 创建时间:2017年4月22日 下午7:06:23 */ public class Q2017秋招_Unix时间戳 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n=0; while (scanner.hasNext() && n<50) {//控制输入的时间戳不超过50条 n++; long time = scanner.nextLong(); reverse(time); } scanner.close(); } public static void reverse(long time){ Date date = new Date(time*1000);//unix中生成的时间戳精确到秒级别,而java中精确到毫秒级别,所以需要*1000 SimpleDateFormat sdf = new SimpleDateFormat("yyyy MM dd");//关注一下这个类 System.out.println(sdf.format(date));//时间输出方法用format()来实现。 } }


转载请注明原文地址: https://www.6miu.com/read-69027.html

最新回复(0)