Date、SimpleDateFormat常用操作

1. Date

Date(long date)
返回一个日期,从标准时间(1970-01-01 00:00:00 GMT)开始,经过的指定毫秒数(参数)的日期。

Date()
返回当前日期,内部调用的是Date(System.currentTimeMillis())。

getTime()
返回自1970-01-01 00:00:00 GMT经过的毫秒数。 

2. SimpleDateFormat

// 继承树
Class SimpleDateFormat

java.lang.Object
    java.text.Format
        java.text.DateFormat
            java.text.SimpleDateFormat    
SimpleDateFormat(String pattern) // 构造函数,使用指定的模式构造SimpleDateFormat

下面这两个函数都是父类DateFormat中的
String format(Date date) // 将日期格式转换成字符串
Date parse(String source) // 将字符串转换成Date

说明:
new SimpleDateFormat(String s)传入的格式字符串不能包含a-z中未定义的字符,其他字符可以,会原封不动的拷贝到转换后的字符串中。也可以使用单引号括起来一个或多个字符(任意字符),这些字符也会原封不动的拷贝到转换后的字符串中。
已经定义的字符:

代码举例:

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

public class DateDemo {

    public static void main(String[] args) throws ParseException {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf.format(date));

        Long milliseconds = date.getTime();
        Date date1 = new Date(milliseconds);
        System.out.println(sdf.format(date1));

        sdf = new SimpleDateFormat("yyyy-MM-dd##HH:mm$:ss");
        String s = sdf.format(date);
        System.out.println(s);
        System.out.println(sdf.parse(s));

        /**
         * 会抛异常:java.lang.IllegalArgumentException: Illegal pattern character 'b'
         * sdf = new SimpleDateFormat("yyyy-MM-ddbHH:mm:ss");
         * System.out.println(sdf.format(date));
         */

        sdf = new SimpleDateFormat("yyyy/MM/dd 'b#@x' HH;mm:ss:SSS");
        System.out.println(sdf.format(date));

        // 转换成UTC时间
        sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssz");
        System.out.println(sdf.format(date));

    }
}
运行结果:
2019-05-09 20:57:39
2019-05-09 20:57:39
2019-05-09##20:57$:39
Thu May 09 20:57:39 GMT+08:00 2019
2019/05/09 b#@x 20;57:39:040
2019-05-09 20:57:39GMT+08:00

 

posted @ 2019-05-09 22:34  暴躁的毛毛熊  阅读(632)  评论(0编辑  收藏  举报