JAVA API系列----日期和时间相关的类

来源:互联网 发布:淘宝账号在哪注册账号 编辑:程序博客网 时间:2024/05/16 14:40

·常用日期、时间相关类:Date、DateFormat和Calendar

·Date()构造方法以当前的时间来初始化Date实例对象,但是Date类没有考虑到国际化的问题,于是出现了DateFormat类和Calendar      类。

·Calendar类:用于完成日期字段(年,月,日,小时,分,秒等)之间的相互操作。

    --Calendar.add方法在某一日期的基础上增加若干时间(年,日,小时,或秒等)得到一个新的日期。

    --Calendar.get方法用于获得日期对象中的字段值(如年月日,时分秒等)。

    --Calendar.set方法用于修改日期对象中日期字段的值。

    --Calendar.getInstance静态方法:Calendar类是一个抽象基类,需要通过Calendar.getInstance方法返回一个Calendar类型的子         类GregorianCalendar 的实例对象。

·编程实例:计算出距当前日期时间315天后的日期时间,并用“xx年xx月xx日xx小时:xx分:xx秒”的格式输出。

 

 

 

·Date类

·java.text.DateFormat:可以将Date对象中的日期用指定的格式输出,或者将特定格式的日期字符串转换成Date实例对象。DateFormat    是一个抽象类,在完成具体任务时需要使用它的子类。

·java.text.SimpleDateFormat:是DateFormat的子类,用于把Date对象中的日期格式化为本地字符串,或者把时间字符串转换成Date对  象。

·编程实例:将“2002-03-15”格式的日期字符串转换成'2002年03月15日"的格式。

 

 

·Timer与TimerTask类

·schedule方法:Timer类的方法,指定多长时间以后启动一个任务线程执行一段代码,或者每个多长时间定期的调用一段代码。

--void schedule(TimerTask task, long delay):在dalay时间长度之后执行TimerTask类对象中的任务代码。

--void schedule(TimerTask task, Date time):在time时间开始执行TimerTask中的任务代码。

--void schedule(TimerTask task, long delay, long period):在delay时间长度之后开始以period为周期执行TimerTask中的任务          代码。

--void schedule(TimerTask task, Date firstTime, long period):在firstTime时间以period为周期开始执行TimerTask中的任       务代码。

·TimerTask类实现了Runnable接口,要执行的任务由它里面实现的run方法来完成。要执行周期性的任务,TimerTask中的run方法要避     免执行for循环之类长时间执行的代码,否则就有可能被打断。

·Timer类默认为非Daemon线程,结束时间不确定,要结束它的执行,就要调用Timer类的cancel方法。

.所谓守护线程(Daemon线程)就是运行在程序后台的线程,程序的主线程Main(比方java程序一开始启动时创建的那个线程)不会是守护线程   

2.Daemon thread在Java里面的定义是,如果虚拟机中只有Daemon thread 在运行,则虚拟机退出。  
  虚拟机中可能会同时有很多个线程在运行,只有当所有的非守护线程都结束的时候,虚拟机的进程才会结束,不管在运行的线程是不是main()线程。 
3.Main主线程结束了(Non-daemon thread),如果此时正在运行的其他threads是daemon threads,JVM会使得这个threads停止,JVM也停下 
  如果此时正在运行的其他threads有Non-daemon threads,那么必须等所有的Non daemon线程结束了,JVM才会停下来 
4.总之,必须等所有的Non-daemon线程都运行结束了,只剩下daemon的时候,JVM才会停下来,注意Main主程序是Non-daemon 线程 
  默认产生的线程全部是Non-daemon线程

·编程实例:程序启动运行后30秒启动Windows自带的计算器程序。

原创粉丝点击