importjava.util.Date;publicclassDateDemo01{publicstaticvoidmain(String[] args){Date date =newDate();System.out.println(date);//Thu Aug 12 10:08:36 CST 2021 CST指中国标准时间long date1 =1000*60*60;//1s = 1000ms 1000*60*60即为一小时Date date2 =newDate(date1);System.out.println(date2);}}
常用方法
方法名
说明
public long getTime()
获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值 UTC
public void setTime(long time)
设置时间,给的是毫秒值
importjava.util.Date;publicclassDateDemo02{publicstaticvoidmain(String[] args){Date d =newDate();System.out.println(d.getTime());//现在时间与1970年1月1日 00:00:00 UTC 到现在的毫秒值long time =System.currentTimeMillis();//System类下的currentTimeMillis()方法 返回时间 毫秒
d.setTime(time);System.out.println(d);// 输出当前时间}}
SimpleDateFormat类
概述
SimpleDateFormat 是一个具体的类,用于以区域设置敏感的方式格式化和解析日期
重点学习 日期格式化 和 解析
常用模式字母
对应关系
y
年
M
月
d
日
H
时
m
分
s
秒
构造方法
方法名
说明
public SimpleDateFormat()
构造一个SimpleDateFormat,使用默认模式和日期格式
public SimpleDateFormat(String pattern)
构造一个SimpleDateFormat使用给定的模式和默认的日期格式
常用方法
方法名
说明
public final String format(Date date)
将日期格式化成日期/时间字符串
public Date parse(String source)
从给定字符串的开始解析文本以生成日期
1. 格式化
importjava.text.SimpleDateFormat;importjava.util.Date;publicclassSimpleDateFormatDemo{publicstaticvoidmain(String[] args){Date date =newDate();/*//使用默认模式和日期格式
SimpleDateFormat sdf = new SimpleDateFormat();*/SimpleDateFormat sdf =newSimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//调用format方法,Date ---> StringString s = sdf.format(date);System.out.println(s);//2021年08月12日 11:48:00}}
2. 解析
importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;//解析publicclassSimpleDateFormatDemo2{publicstaticvoidmain(String[] args)throwsParseException{String s ="2021-08-12 10:35:35";// SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//ParseException:解析异常SimpleDateFormat sdf =newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式必须与输入的s相同,注意区分符号中英文//调用parse方法,String ---> DateDate parse = sdf.parse(s);System.out.println(parse);// Thu Aug 12 10:35:35 CST 2021}}
案例<日期工具类>
DateDemo
importjava.text.ParseException;importjava.util.Date;//测试作用publicclassDateDemo{publicstaticvoidmain(String[] args)throwsParseException{//创建日期对象Date d =newDate();String s =DateUtils.dateToString(d,"yyyy年MM月dd日 HH:mm:ss");//也可以单独输出年月日,或者时分秒System.out.println(s);String s1 ="2021-08-12 10:54:55";Date date =DateUtils.stringToDate(s1,"yyyy-MM-dd HH:mm:ss");System.out.println(date);}}
DateUtils
importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;//日期工具类/*
1.定义日期工具类(DateUtils)
2.定义一个方法dateToString,用于把日期转换为指定格式的字符串
返回值类型:String 参数 Date date,String format 日期,指定格式
3.定义一个方法StringToDate,用于字符串解析为指定格式的日期
返回值类型:Date 参数 String s,String format
4.定义测试类DateDemo,调用日期工具类的方法
*/publicclassDateUtils{//构造方法私有privateDateUtils(){}// Date --> StringpublicstaticStringdateToString(Date date,String format){SimpleDateFormat sdf =newSimpleDateFormat(format);String s = sdf.format(date);//format方法: Date --> Stringreturn s;}// String --> DatepublicstaticDatestringToDate(String s,String format)throwsParseException{SimpleDateFormat sdf =newSimpleDateFormat(format);Date d = sdf.parse(s);//parse方法: String --> Datereturn d;}}
public final void set(int year,int month,int date)
设置当前日历的年月日
代码示例
1. get(int field)
importjava.util.Calendar;publicclassCalendarDemo{publicstaticvoidmain(String[] args){//获取对象Calendar c =Calendar.getInstance();//多态的形式//System.out.println(c);//public int get (int field) 返回给定日历字段对应的值//获取当前的年月日int year = c.get(Calendar.YEAR);int mouth = c.get(Calendar.MONTH)+1;//因为月份是从0开始 所以获取的月份要+1才行int date = c.get(Calendar.DATE);System.out.println(year +"年"+ mouth +"月"+ date +"日");//2021年8月12日}}
注意点
get方法获取的月份是从0开始的,1月获取的是0,所以 int mouth = c.get(Calendar.MONTH) + 1 中需要加上 1 才能输出当前的月份