日期类
1.Date类
Date类是一个使用较多的类,在使用中直接使用 java.util.Date 类的构造方法并进行输出就可以得到一个完整的日期。
在Date类的方法中提供了两个long与Date间转换操作的方法:
(1)构造方法:public Date(long date)。
(2)将Date变为long:public long getTime()。
1 import javax.swing.*; 2 import java.util.Date; 3 4 public class Datetest { 5 public static void main(String[] agrs){ 6 Date date1 = new Date(); //实例化Date对象 7 System.out.println(date1); //输出日期 8 9 System.out.println("--------"); 10 11 long cur = System.currentTimeMillis(); //取得当前的日期和时间已long型返回 12 System.out.println(cur); 13 Date date2 = new Date(cur); //实例化Date对象 14 System.out.println(date2); //输出对象信息 15 System.out.println(date2.getTime()); //输出对象信息 16 17 } 18 }
2.SimpleDateFormat类
SimpleDateFormat类可用于日期转换,如原日期为2021-5-4 10:30:23.132,转换后的日期为2021年5月4日 10时30分23秒132毫秒。从这两个日期可以发现日期数字一样但是日期格式不同,想要实现转换就必须使用SimpleDateFormat类来完成。
日期格式化模板标记
标记 | 描述 |
---|---|
y | 年,年份是4个数字,所以需要使用“yyyy”表示 |
M | 月份,月份是两位数,用“MM”表示 |
d | 日是两位数,用“dd”表示 |
H | 一天最多24个小时,是两位数,用“HH”表示 |
m | 分钟是两位数,用“mm”表示 |
s | 秒是两位数,用“ss”表示 |
S | 毫秒是3位数,用“SS”表示 |
类中的常用方法
方法 | 类型 | 描述 |
---|---|---|
public SimpleDateFormat(String pattern) | 构造 | 通过一个指定的模板构造对象 |
public Date parse(String source) throws ParseException | 普通 | 将一个包含日期的字符串变为Date类型 |
public final String format(Date date) | 普通 | 将一个Date类型按照指定格式转换为String类型 |
1 import java.text.ParseException; 2 import java.text.SimpleDateFormat; 3 import java.util.Date; 4 5 public class SimpleDateFormatdome { 6 public static void main(String[] args) { 7 String strDate = "2021-05-04 10:30:23.132"; //定义日期和时间的字符串 8 String pat1 = "yyyy-MM-dd HH:mm:ss.SSS"; //准备第一个模板,这个模板是被转换的,所以格式要和定义的日期一样 9 String pat2 = "yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒 SSS 毫秒"; //准备第二个模板,这个是转换后的格式 10 11 SimpleDateFormat sdf1 = new SimpleDateFormat(pat1); //实例化模板对象 12 SimpleDateFormat sdf2 = new SimpleDateFormat(pat2); //实例化模板对象 13 14 Date d = null; 15 try { 16 d = sdf1.parse(strDate); //将给定的字符串中的日期按模板1取出来 17 } catch (ParseException e) { 18 e.printStackTrace(); 19 } 20 21 System.out.println(sdf2.format(d)); //将转换后的日期新格式输出 22 } 23 }
3.Calendar类
Calendar类是一个抽象类,如果想用一个抽象类必须依靠对象的多态性,通过子类**进行父类的实例化操作。
1 import java.util.Calendar; 2 import java.util.GregorianCalendar; 3 4 public class Calendardome { 5 public static void main(String[] args) { 6 Calendar calender = null; //声明一个Calendar对象 7 calender = new GregorianCalendar(); //通过子类实例化 8 9 System.out.println("年:"+calender.get(Calendar.YEAR)); //年 10 System.out.println("月:"+(calender.get(Calendar.MONTH)+1)); //月 11 System.out.println("日:"+calender.get(Calendar.DAY_OF_MONTH)); //日 12 System.out.println("时:"+calender.get(Calendar.HOUR_OF_DAY)); //时 13 System.out.println("分:"+calender.get(Calendar.MINUTE)); //分 14 System.out.println("秒:"+calender.get(Calendar.SECOND)); //秒 15 System.out.println("毫秒:"+calender.get(Calendar.MILLISECOND)); //毫秒 16 17 } 18 }