Calendar and Date and simpleDateformat

package date_using;

import java.awt.image.SampleModel;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 *Calendar是单例模式,是根据子类 GregorianCalendar的实例实现的(多态)
 *
 * @author Administrator
 * @tags   
 * @copyright  katherinelove 
 * @date  2018年8月19日 上午9:21:39
 */
public class CalendarAndDate {
    public static void main(String[] args) throws ParseException {
        //获取的唯一实例是子类GregorianCalendar的实例   多态形式    
        //date对象只是可以作为中间实例,已经过时了
        //只能实例化一个对象,但是可以自主设置时间
        Calendar cal1=Calendar.getInstance(); 
        
        int year=cal1.get(Calendar.YEAR);
        int month=cal1.get(Calendar.MONTH);
        int dayOfMonth=cal1.get(Calendar.DAY_OF_MONTH);
        int hour=cal1.get(Calendar.HOUR_OF_DAY);
        int minute=cal1.get(Calendar.MINUTE);
        int second=cal1.get(Calendar.SECOND);
        long msecond=cal1.get(Calendar.MILLISECOND);
        
        //如何组装成固定格式
        //一是 string.format()方法
        //%02d  2表示两位数,不足两位补0
        String strTime=String.format("%d-%02d-%02d %d:%d:%d %d",
            year,month,dayOfMonth,hour,minute,second,msecond);
        System.out.println("当前时间是:"+strTime);
        
        //二是 利用Date.toLocalString()
        //为日历设定格式
        cal1.set(2012,5,12,14,28,52);
        Date date=cal1.getTime();
        System.out.println("设置时间后:"+date.toLocaleString());
        
        //三是 利用SimpleDateFormat对象.format()方法格式化解释时间
        //设置时间格式
        SimpleDateFormat format=
                new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
        //date 作为中间对象  解析时间字符串  SimpleDateFormat对象.parse(string)
        Date newDate=format.parse("2017-8-9 14:22:32:222");
        System.out.println("解析后时间:"+newDate.toLocaleString());
        
        
        //如何获取另外一个时间对象 利用GregorianCalendar的实例化
//        GregorianCalendar cal=new GregorianCalendar();
        //为了获取8月   要设置成(8-1)
        Calendar cal2=new GregorianCalendar(2012,(8-1),12);    //多态形式
        //cal2.getTimeInMillis()     
        //Calendar对象.getTimeInMillis() 获取1900以来的毫秒数
        long diff=cal2.getTimeInMillis()-cal1.getTimeInMillis();
        int diffDay=(int)(diff/1000/60/60/24);
        System.out.println("时间差:"+diff+"ms");
        System.out.println("相差天数:"+diffDay+"D");
        
        //如何获取当前时间各个field的取值范围
        System.out.println("cal2当前时间年份最大值"+
        cal2.getActualMaximum(Calendar.YEAR));
        System.out.println("cal2当前时间年份最大值"+
                cal2.getActualMinimum(Calendar.YEAR));
    }

}
 

猜你喜欢

转载自blog.csdn.net/sinat_22498107/article/details/81836200