Date类

获取系统当前时间

import java.util.Date;



public class DateDemo {

    public static void main(String[] args) {

        //使用System类中的方法

        long time = System.currentTimeMillis();//该方法无参数

        System.out.println(time);//结果是1394442444485

        

        //使用Date类

        Date d = new Date();//当前系统当前的时间,封装成对象

        System.out.println(d);    //结果Mon Mar 10 17:06:02 CST 2014

        

        Date d1 = new Date(1394442444485l);//将指定毫秒值封装成Date对象。,参数是long类型的所以后面加个l

        System.out.println(d1);

    }

}

 日期对象和毫秒值之间的转换。

  毫秒值-->日期对象 :
     通过Date对象的构造方法 new Date(timeMillis);
     还可以通过setTime设置。 因为可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作。
  日期对象-->毫秒值:  

    getTime方法。 因为可以通过具体的数值进行运算。

import java.util.Date;



public class DateDemo {

    public static void main(String[] args) {

        Date date1 = new Date(1394442990182l);

        System.out.println(date1);

        

        Date d2 = new Date();

        d2.setTime(1394442990182l);//将日期毫秒值转换为日期对象

        System.out.println(d2);

        

        Long L = d2.getTime();//将日期对象转换为日期毫秒值

        System.out.println(L);

        

    }

}

 

 

对日期对象进行格式化:

 

    将日期对象-->日期格式的字符串。使用的是DateFormat类中的format方法。

import java.text.DateFormat;

import java.util.Date;

/*

 * 步骤:

 * 1.创建一个时间对象

 * 2.通过DateFormat类中的getDateInstance()等方法获取日期格式对象,该方法中可以指定日期风格

 * 3通过日期格式对象调用format()方法,将时间对象传到参数中,返回字符串

 * */

public class DateDemo {

    public static void main(String[] args) {

        Date date = new Date();

        

        //获取日期格式对象。具备着默认的风格。也可以加入参数中指定风格 FULL LONG等。

        DateFormat dateFormat = DateFormat.getDateInstance();

        String str_date = dateFormat.format(date);

        System.out.println(str_date);

        

        

        dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);//第一个参数表示日期风格,第二个表示时间的风格

        str_date = dateFormat.format(date);

        System.out.println(str_date);

        

    }

}

自定义定义风格:

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Date;



public class DateDemo {

    public static void main(String[] args) {

        Date date = new Date();

        DateFormat dateFormat = DateFormat.getDateInstance();

        dateFormat = new SimpleDateFormat("yyyy#MM#dd F hh#mm#ss# Z");//

        

        String str_date = dateFormat.format(date);

        

        System.out.println(str_date);

    }

}

 

 

    将日期格式的字符串-->日期对象。使用的是DateFormat类中的parse()方法。

import java.text.DateFormat;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;



public class DateDemo {

    public static void main(String[] args) throws ParseException {

        String str_date = "2012年4月19日";

        //str_date = "2011---8---17";

        

        DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);

        

        //dateFormat = new SimpleDateFormat("yyyy---MM---dd");

        

        Date date = dateFormat.parse(str_date);

        

        System.out.println(date);

    }

}

 

 

 

 练习:"2012-3-17"到"2012-4-6"中间有多少天?

思路:

  两个日期相减就哦了。咋减呢?
  必须要有两个可以进行减法运算的数。能减可以是毫秒值。如何获取毫秒值?通过date对象。
  如何获取date对象呢?可以将字符串转成date对象。
  1,将日期格式的字符串转成Date对象。
  2,将Date对象转成毫秒值。
  3,相减,在变成天数

import java.text.DateFormat;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;



public class DateDemo {

    public static void main(String[] args) throws ParseException {

        String str_date1 = "2012-3-17";

        String str_date2 = "2012-4-18";

        test(str_date1,str_date2);

    }

    public static void test(String str_date1,String str_date2) throws ParseException {

        

        //1,将日期字符串转成日期对象。

        DateFormat dateFormat = DateFormat.getDateInstance();//获取日期格式对象。

        dateFormat = new SimpleDateFormat("yyyy-MM-dd");

        

        Date date1 = dateFormat.parse(str_date1);

        Date date2 = dateFormat.parse(str_date2);

        

        //2,将Date对象转成毫秒值。

        long time1 = date1.getTime();

        long time2 = date2.getTime();

        

        //3,相减,再变成天数

        long time = Math.abs(time1-time2);//绝对值方法

        int day = getDay(time);

        System.out.println(day);

        

    }

    //时间毫秒值变成天数

    private static int getDay(long time) {

        int day = (int)(time/1000/60/60/24);

        return day;

    }

}

 

 

 

 

 

你可能感兴趣的:(Date)