2.9 问题:显示当前时间
本节的问题是开发一个显示当前GMT(格林威治标准时间)的程序,格林威治时间的格式为小时∶分钟∶秒(hour:minute:second),例如13∶19∶8。
System类中的方法currentTimeMillis返回从GMT 1970年1月1日00:00:00开始到当前时刻的毫秒数,如图2-2所示。因为1970年是UNIX操作系统正式发布的时间,所以这一时间也称为UNIX时间戳(UNIX epoch)。
图2-2 System.currentTimeMillis()返回自UNIX时间戳以来的毫秒数
可以使用这个方法获取当前时间,然后按照如下步骤计算出当前的秒数、分钟数和小时数:
1)调用System.currentTimeMillis()方法获取存放在变量totalMilliseconds中从1970年1月1日午夜到现在的毫秒数(例如:1203183086328毫秒)。
2)通过将总毫秒数totalMilliseconds除以1000得到总秒数totalSeconds(例如:1203183086328毫秒/1000=1203183086秒)。
3)通过totalSeconds%60得到当前的秒数(例如:1203183086秒%60=26,这个值就是当前秒数)。
4)通过将totalSeconds除以60得到总的分钟数totalMinutes(例如:1203183086秒/60= 20053051分钟)。
5)通过totalMinutes%60得到当前分钟数(例如:20053051分钟%60=31,这个值就是当前分钟数)。
6)通过将总分钟数totalMinutes除以60获得总的小时数totalHours(例如:20053051分
钟/60=334217小时)。
7)通过totalHours%24得到当前的小时数(例如:334217小时%24=17,该值就是当前小时数)。
程序清单2-6给出完整的程序。
程序清单2-6 ShowCurrentTime.java
当调用System.currentTimeMillis()(第4行)时,它返回GMT当前时间与1970年1月1日0点之间单位为毫秒的差值。这个方法返回一个long型的毫秒值。因此,在该程序中的所有变量都被声明为long型。
【责任编辑:云霞 TEL:(010)68476606】
点赞 0