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