我们将讨论下面的类:
1、具体类(和抽象类相对)java.util.Date
2、抽象类java.text.DateFormat 和它的一个具体子类,java.text.SimpleDateFormat
3、抽象类java.util.Calendar 和它的一个具体子类,java.util.GregorianCalendar
在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和分析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。Date 中的相应方法已废弃。
具体的我就不说了!您看下下面的代码,再去看看API就懂他们常用了!
- 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以内随机
- }
- }
具体的运行结果为: