java中date和calendar的区别

我们将讨论下面的类: 

1、具体类(和抽象类相对)java.util.Date 

2、抽象类java.text.DateFormat 和它的一个具体子类,java.text.SimpleDateFormat 

3、抽象类java.util.Calendar 和它的一个具体子类,java.util.GregorianCalendar 

具体类可以被实例化, 但是抽象类(abstract)却不能. 你首先必须实现抽象类的一个具体子类. 

一.Date类的使用 

首先,看一个实例: 

import java.util.Date; 

public class Data{ 

public static void main(String[] args) { 

Date date = new Date();//实例化一个date,获得系统日期 

System.out.println(date.getTime());//输出当到时间 

} 

} 

我们可以看到输出是一串数字,在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和分析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。Date 中的相应方法已废弃。 
 
 
package com.hanchao.test;  import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Random;  /**  * 来测试一下此类:GregorianCalendar  * @author hanlw  */ public class Test {      public static void main(String[] args) {                  /*****************************************          * 通过GregorianCalendar可以获取年月日时分秒的各自的值          */         GregorianCalendar cal = new GregorianCalendar();                  int curYear = cal.get(Calendar.YEAR);         int curMonth = cal.get(Calendar.MONTH)+1;         int curDate = cal.get(Calendar.DATE);         int curHour = cal.get(Calendar.HOUR_OF_DAY);         int curMinute = cal.get(Calendar.MINUTE);                  System.out.println(curYear + "年\t"                             + curMonth + "月\t"                             + curDate +"日\t"                             + curHour + "时\t"                             + curMinute + "分\n");                  /**********************************************          * Date的方法用的比较少了!用的比较少了!          */         Date date = new Date();         System.out.println("系统当前的时间:"+date.getTime() + "\n");                  /************************************************          * 常用到的。 注意大小写的区别啊!!          */         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd" + "\n");         System.out.println("今天的日期为:\t"+sdf.format(date));          SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM" + "\n");         System.out.println("输出年月:\t" +sdf2.format(date));                           SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH");         System.out.println("某年月某日某时:\t" +sdf3.format(date) + "\n");                  SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm");         System.out.println("某年某月某日某时某分:\t" + sdf4.format(date) +"\n");                  SimpleDateFormat sdf5 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");         System.out.println("某年某月某日某时某分某秒:\t" + sdf5.format(date));                  SimpleDateFormat sdf6 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:ms");         System.out.println("某年某月某日某时某分某秒某毫秒:\t" + sdf6.format(date)+"\n");                  /** 看看电子商务网站的订单的生成吧。*/         System.out.println("您的订单号:\t" +getNow() + "\n");     }      /**      * 该方法常用来生成订单      * @return      */     public static String getNow() {         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssms");//时间格式         //是随机数的生成(保证那一秒钟订单的不重复,如果您的业务量非常大时,我们可以把下面的1000改成10000000......)         Random random = new Random();         int index = random.nextInt(1000);         return  sdf.format(new Date())+index;//返回当前时间对应的字符串+一个1000以内随机     } } 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值