2015年12月27日        阴         星期日

今天在学习计时器Timer这个类的时候,在用time.schedule(TimerTask task , Date firsttime, long period)这个方法的时候第二个参数firsttime用到了Date类型的日期,让我对Calendar的时间设置做了研究。定义个闹钟每天早上六点叫我起床,为了测试方便,我设置每隔5秒叫我一次。

java confirmdialog 设定时间 java设置时间的方法_获取当前时间

start 参数是Date类型的日期。Date类型是Java不建议使用的日期类型,可是由于Date涉及的API过于广泛。所以,在大量的API中依然在使用Date类型的参数。

Date date=new Date();声明一个Date对象,可以获取当前Date类型的当前日期。

java confirmdialog 设定时间 java设置时间的方法_API_02

可以给大家看一下我的运行结果,因为我设置的是每隔5秒,输出一次起床了。在用QQ截图的时候,发现了当我打开截图准备多截几条起床了,发现console竟然不输出了,看来在多线程处理的时候,java默认开启了线程锁。在我截完图之后,一下子蹦出来几条起床了。看来单核u遇到多线程只能等待了。我也不知说的对不对,望大神来纠正。

java confirmdialog 设定时间 java设置时间的方法_获取当前时间_03

之后我又用java推荐的Calendar来设置一下时间,个人感觉Calendar还是封装的比较好的时间类。首先声明一个Calendar变量是必要的,并且获取当前时间。

Calendar cal=Calendar.getInstance();

java confirmdialog 设定时间 java设置时间的方法_API_04

cal.set()设置12小时可以用Calendar.HOUR. 因为我看到cal还用.settime()方法,我想看看.settime()跟.set有什么区别,于是又写了下边的代码来测试。

java confirmdialog 设定时间 java设置时间的方法_获取当前时间_05

我看了.settime(Date date)方法参数是Date类型 .set(int field ,int value)感觉cal类里应该是放了一个Map。相比之下用起来.set方法跟容易操作。不像Date类型让人看不懂。

其实计时器Timer要的就是一个Date类型的start参数,所以如果你对时间的计算很拿手的话用.settime()也未尝不可。

java还提供了SimpleDateFormat 时间格式化这个类来让Date类型的时间转化成大众意义的时间。

java confirmdialog 设定时间 java设置时间的方法_API_06

大写的MM代表月份,小写的mm代表分钟。

第一次写发现在写的过程中还能获得新的体验,望各路大神指点本文。