Java中的日期时间

Java中的日期时间

分类: Java基本知识   2687人阅读  评论(5)  收藏  举报

Java中如何表示当前时间,说到这里,很容易想到Date类。没错这是最常用的,也是最简单的表示时间的类。请看代码:

  1. import java.util.Date;
  2. public class TestDate {
  3.     public static void main (String args[]){
  4.         Date date = new Date();
  5.         
  6.         System.out.print(date);
  7.     }
  8. }

运行结果是:

  1. Sat Sep 06 14:13:46 CST 2008

可以很直接的看出来当前我编辑这个帖子的时间是多少。也就是说运行该程序直接取得的是当前主机的时间。如果你觉得这样看上去很晕,毕竟不是我们所习惯的那种表示时间的方法,那么你可以做一些小改动了。请看代码:

  1. import java.util.Date;
  2. import java.text.*;
  3. public class TestDate {
  4.     public static void main (String args[]){
  5.         Date date = new Date();
  6.         
  7.         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");
  8.         
  9.         System.out.print(dateFormat.format(date));
  10.     }
  11. }

我们需要借助于SimpleDateFormat类的format方法来格式化当前时间。输出结果为:

  1. 2008-09-06 02-17-07

Date类虽然简单好用,但是你去看看现在的Java API,里面的方法基本都是过时的,也就是不推荐使用了。方法少了,自然功能也就减弱了。不过还在Java的发明和维护者给我们提供了抽象类Calendar类以及它的直接子类GregorianCalendar。这两个类也是位于java.util包类。一般使用是要利用Calendar的静态方法getInstance()构造一个当前时区的日历,再做下一部操作。请看下面的代码,该代码的功能是找出给定两个日期之间的所有日期,并按照给定的格式打印。

  1. import java.util.*;
  2. import java.text.*;
  3. public class DisplayDateEveryday {
  4.     public static void main(String args[]){
  5.         
  6.         display("2008-08-08""2008-08-24");
  7.         
  8.     }
  9.     
  10.     public static void display(String dateFirst, String dateSecond){
  11.         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
  12.         
  13.         try{
  14.             Date dateOne = dateFormat.parse(dateFirst);
  15.             Date dateTwo = dateFormat.parse(dateSecond);
  16.             
  17.             Calendar calendar = Calendar.getInstance();
  18.             
  19.             calendar.setTime(dateOne);
  20.             
  21.             while(calendar.getTime().before(dateTwo)){              
  22.                 System.out.println(dateFormat.format(calendar.getTime()));
  23.                 
  24.                 calendar.add(Calendar.DAY_OF_MONTH, 1);             
  25.             }
  26.         }
  27.         catch(Exception e){
  28.             e.printStackTrace();
  29.         }
  30.         
  31.     }
  32. }

结果输出为:

  1. 2008-08-08
  2. 2008-08-09
  3. 2008-08-10
  4. 2008-08-11
  5. 2008-08-12
  6. 2008-08-13
  7. 2008-08-14
  8. 2008-08-15
  9. 2008-08-16
  10. 2008-08-17
  11. 2008-08-18
  12. 2008-08-19
  13. 2008-08-20
  14. 2008-08-21
  15. 2008-08-22
  16. 2008-08-23

这里只是简单的介绍了一下Calendar类的几个方法,具体可以查阅Java API文档,里面有详细的介绍。

另外我们还经常用到一个时间概念,就是System.currentTimeMillis()。可以利用它来计算我们代码运算所耗费的时间。请看代码:

  1. public class TestFrequency {
  2.     public static void main(String args[]){
  3.         long timeFirst = System.currentTimeMillis();
  4.         
  5.         double count = 0;
  6.         for(int i=0; i<100000000; i++){
  7.             ++ count;
  8.             count *= count;
  9.         
  10.         }
  11.         
  12.         System.out.print("After "+ (System.currentTimeMillis()-timeFirst)/1000 +"s, count="+ count);
  13.     }
  14. }

看看打印的数据吧,挺搞笑的...

  1. After 1s, count=Infinity
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值