Date类
Date类表示系统特定的时间戳,乐意精确到毫秒。Date对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。
-
Date类有两个构造方法:
public Date():分配一个Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
public Date(long date):分配一个Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数
标准基准时间:
0时区:1970年1月1日00:00:00 GMT 格林威治标准时间
东8区:1970年1月1日08:00:00 CST 中国标准时间
package com.common.date; import java.util.Date; public class DateDemo01 { public static void main(String[] args) { //public Date(),分配一个Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒 Date d1=new Date(); System.out.println(d1); //public Date(long date),分配一个Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数 long date=1000*60*60;//一小时 Date d2=new Date(date); System.out.println(d2); } }
-
Date常用方法
public long getTime():获取的是日期对象从1970年1月1日00:00:00到现在的毫秒值
public void setTime(long time):设置时间给的是毫秒值
package com.common.date; import java.util.Date; public class DateDemo02 { public static void main(String[] args) { Date d = new Date(); System.out.println(d.getTime()); long time=1000*60*60; //long time=System.currentTimeMillis(); d.setTime(time); System.out.println(d); } }
long time=System.currentTimeMillis();获得系统当前的时间
-
SimpleDateFormat类
SimpleDateFormat类是DateFormat的子类,是日期格式化类,专门用来格式化和解析日期的。格式化指的是将存储日期的类转化为字符串记录的日期形式,这里主要指Date类转化为String类。解析是格式化的逆过程,指的是将表示日期的字符串转化为记载日期的类。
常用的模式字母对应关系如下:
- y 年
- M 月
- d 日
- H 时
- m 分
- s 秒
-
SimpleDateFormat类的构造方法
public SimpleDateFormat():构造一个SimpleDateFormat使用默认模式和日期格式
public SimpleDateFormat(String pattern):构造一个SimpleDateFormat使用给定的模式和默认的日期格式
-
SimpleDateFormat格式化和解析日期
格式化:从Date到String
public final String format(Date date):将日期格式化成日期/时间字符串
解析:从String到Date
public Date parse(String source):从给定字符串开始解析文本以生成日期package com.common.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateDemo03 { public static void main(String[] args) throws ParseException { //格式化:从Date到String Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String s = sdf.format(d); System.out.println(s); System.out.println("=============================="); //解析:从String到Date String s1="2023-5-15 23:23:15"; SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d1 = sdf1.parse(s1); System.out.println(d1); } }
-
日期工具类
工具类构造方法私有,成员方法为静态方法
- 把日期转为指定格式的字符串
返回值类型:String
参数:Date date,String format - 把字符串解析为指定格式的日期
返回值类型:Date
参数:String s,String format
package com.common.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateUtils { private DateUtils(){ } public static String dateToString(Date date, String format){ SimpleDateFormat sdf = new SimpleDateFormat(format); String s = sdf.format(date); return s; } public static Date stringToDate(String s,String format) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat(format); Date d = sdf.parse(s); return d; } }
测试类:
package com.common.date; import java.text.ParseException; import java.util.Date; public class DateUtilsTest { public static void main(String[] args) throws ParseException { //创建日期对象 Date d = new Date(); String s1 = DateUtils.dateToString(d, "yyyy年MM月dd日 HH:mm:ss"); System.out.println(s1); String s2 = DateUtils.dateToString(d, "yyyy年MM月dd日"); System.out.println(s2); String s3 = DateUtils.dateToString(d, "HH:mm:ss"); System.out.println(s3); System.out.println("==========================="); String s="2023-05-16 23:13:12"; Date d1 = DateUtils.stringToDate(s, "yyyy-MM-dd HH:mm:ss"); System.out.println(d1); } }
- 把日期转为指定格式的字符串