Java中的日期时间

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

  1. importjava.util.Date;
  2. publicclassTestDate{
  3. publicstaticvoidmain(Stringargs[]){
  4. Datedate=newDate();
  5. System.out.print(date);
  6. }
  7. }

运行结果是:

  1. SatSep0614:13:46CST2008

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

  1. importjava.util.Date;
  2. importjava.text.*;
  3. publicclassTestDate{
  4. publicstaticvoidmain(Stringargs[]){
  5. Datedate=newDate();
  6. SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy-MM-ddhh-mm-ss");
  7. System.out.print(dateFormat.format(date));
  8. }
  9. }

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

  1. 2008-09-0602-17-07

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

  1. importjava.util.*;
  2. importjava.text.*;
  3. publicclassDisplayDateEveryday{
  4. publicstaticvoidmain(Stringargs[]){
  5. display("2008-08-08","2008-08-24");
  6. }
  7. publicstaticvoiddisplay(StringdateFirst,StringdateSecond){
  8. SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy-MM-dd");
  9. try{
  10. DatedateOne=dateFormat.parse(dateFirst);
  11. DatedateTwo=dateFormat.parse(dateSecond);
  12. Calendarcalendar=Calendar.getInstance();
  13. calendar.setTime(dateOne);
  14. while(calendar.getTime().before(dateTwo)){
  15. System.out.println(dateFormat.format(calendar.getTime()));
  16. calendar.add(Calendar.DAY_OF_MONTH,1);
  17. }
  18. }
  19. catch(Exceptione){
  20. e.printStackTrace();
  21. }
  22. }
  23. }

结果输出为:

  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. publicclassTestFrequency{
  2. publicstaticvoidmain(Stringargs[]){
  3. longtimeFirst=System.currentTimeMillis();
  4. doublecount=0;
  5. for(inti=0;i<100000000;i++){
  6. ++count;
  7. count*=count;
  8. }
  9. System.out.print("After"+(System.currentTimeMillis()-timeFirst)/1000+"s,count="+count);
  10. }
  11. }

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

  1. After1s,count=Infinity
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值