SimpleDateFormat

package com.demo.simpledateformat;

import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/***
 * SimpleDateFormat 对象
 *  String --> Date
 *  Date --> String
 */
public class DateFormat
{
    public static void main(String[] args) throws ParseException
    {
        DateToString();
        StringToDate();
        TestCalendar();
    }
    private static void TestCalendar()
    {
        Calendar calendar = Calendar.getInstance();
        System.out.println("得到当前时间对象:"+calendar.getTime().getTime());

        // 直接设定日历的年月日是分秒,月份是从0开始的 --> 2012-6-12 13:25:22
        calendar.set(2012,12,12,13,25,22);
        System.out.println(calendar.getTime().toLocaleString());

        // 通过长时间去设定日历   --> 2017-12-6 21:14:35
        calendar.setTimeInMillis(1512566075165L);
        System.out.println(calendar.getTime().toLocaleString());
    }
    /***
     *  Date --> String
     */
    private static void DateToString()
    {
         String DATA_ONE = "yyyy-MM-dd HH:mm:ss";
         String DATA_TWO = "yyyy-M-d HH:mm:ss";
         String DATA_THREE = "yyyy-M-d";
         String DATA_FOUR = "HH:mm:ss";
         String DATA_FIVE = "yyyy年MM月dd HH:mm:ss";

        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat(DATA_ONE);
        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat(DATA_TWO);
        SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat(DATA_THREE);
        SimpleDateFormat simpleDateFormat4 = new SimpleDateFormat(DATA_FOUR);
        SimpleDateFormat simpleDateFormat5 = new SimpleDateFormat(DATA_FIVE);

        System.out.println(simpleDateFormat1.format(Calendar.getInstance().getTime()));

        // 推迟10天,3小时,20分钟,10秒
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DAY_OF_YEAR,10);
        calendar.add(Calendar.HOUR_OF_DAY,3);
        calendar.add(Calendar.MINUTE,20);
        calendar.add(Calendar.SECOND,10);
        System.out.println("经过延时后的时间:"+simpleDateFormat2.format(calendar.getTime()));

        System.out.println(simpleDateFormat3.format(Calendar.getInstance().getTime()));
        System.out.println(simpleDateFormat4.format(Calendar.getInstance().getTime()));
        System.out.println(simpleDateFormat5.format(Calendar.getInstance().getTime()));
    }

    /**
     * 在将String类型的时间转换成Date形式时,需要注意:
     * 1.构造SimpleDateFormat对象时,传递的时间格式必须和需要格式的String类型保持一致。
     * 2.格式上的统一至少保持年月日上面的统一。
     * 3.格式化后返回一个Date对象
     * 4.两个重载的方法
     *  parse(String source, ParsePosition pos) pos-->开始解析的位置
     *  parse(String source)
     *
     */
    private static void StringToDate() throws ParseException
    {
        String stDa1 = "2017/02/03 19:46:23";

        //由 String-->Date 时,时间格式上面至少保持年月日上面的一致
        //SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");

        Date date = simpleDateFormat.parse(stDa1);
        System.out.println("由String类型时间转化成的Date对象:"+date);
        Date date1 = simpleDateFormat.parse(stDa1,new ParsePosition(2));

        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("将Date对象转化格式输出:"+simpleDateFormat1.format(date));
        System.out.println("添加ParsePosition参数后解析的时间:"+simpleDateFormat1.format(date1));
    }
}

 

posted @ 2017-12-06 23:31  xinjia  阅读(174)  评论(0编辑  收藏  举报