227时间日期相关类总结
时间日期相关类总结
1.Date类
A.构造方法
Date(); 根据当前系统时间创建日期对象
Date(long time); 根据传入的毫秒值时间创建日期对象
B.成员方法
longEetTime(); 获取当前日期对象的毫秒值时间
String toLocaleString(); 根据本地格式转换日期对象
public static void main(String[] args) {
//获取当前系统到1970年1月1日00:00:00经历了多少毫秒
System.out.println(System.currentTimeMillis());
}
}
结果:
public class Demo02Date {
public static void main(String[] args) {
demo01();
demo02();
demo03();
}
/*
Date的空参构造方法
Date()获取的就是系统的日期和时间
*/
private static void demo01() {
Date D = new Date();
//Wed Jul 06 09:02:37 CST 2022
//CST是表示中国标准时间
System.out.println(D);//Wed Jul 06 09:07:53 CST 2022
}
/*
Date类的参数的构造方法
Date(long date):传递毫秒值,把毫秒值转换为Date日期
*/
private static void demo02() {
Date D1 = new Date(0L);
System.out.println(D1);//Thu Jan 01 08:00:00 CST 1970
Date D2 = new Date(18564156419856L);
System.out.println(D2);//Tue Apr 11 06:06:59 CST 2558
}
/*
longgetTime()把日期转换为毫秒
返回值1970年1月1日00:00:00以此来Date对象表示毫秒数
*/
private static void demo03() {
Date D3 = new Date();
long time = D3.getTime();
System.out.println(time);//1657069936820
}
}
2.DateFormat类&SimpleDateFormat类
A.构造方法
SimpleDateFormat(String s); 根据指定模板创建日期格式化对象
B.成员方法
String format(Date d); 根据指定格式格式化日期对象
Date parse(String s); 根据指定格式解析字符串
public static void main(String[] args) throws ParseException {
demo01();
demo02();
}
/*
使用 Dateformat类中的方法 format,把曰期格式化为文本
String format( Datedate)按照指定的模式,把Date日期,格式化为符合模式的字符串
使用步骤:1.创建 Simpledate Format对象,构造方法中传递指定的模式
2.调用 Simpledate Format对象中的方法 format,按照构造方法中指定的模式,把pote日期格式化为符合模式的字符串(文本)
*/
private static void demo01() {
//1.创建 Simpledate Format对象,构造方法中传递指定的模式
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat s1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date date = new Date();
String a1 = s.format(date);
String a2 = s1.format(date);
System.out.println(a1);//2022-07-06 09:38:44
System.out.println(a2);//2022年07月06日 09时38分44秒
}
public static void main(String[] args) throws ParseException {
demo01();
demo02();
}
/*
使用 Dateformat类中的方法 parse,把文本解析为日期
Date parse( String source)把符合模式的字符串,解析为Date日期
使用步骤:
1.创建 Simpledate Format对象,构造方法中传递指定的模式
2.调用Simpledate Format对象中的方法parse把符合构造方法中模式的字符串,解析为Date日期
注意:
public Date parse (string source )throws Parseexception
parse方法声明了一个异常叫 Parseexception解析异常
如果字符串和构造方法中的模式不一样,那么程序就会抛出此异常
调用一个抛出异常的方法,就必须的处理这个异常,要么 throws继续声明抛出这一个异常,要么try....catch自己处理这个异常
*/
private static void demo02() throws ParseException {
//1.创建 Simpledate Format对象,构造方法中传递指定的模式
SimpleDateFormat a1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
//2.调用Simpledate Format对象中的方法parse把符合构造方法中模式的字符串,解析为Date日期
Date date = a1.parse("2022年07月06日 09时38分44秒");
System.out.println(date);
}
3.Calendar类
A.创建对象方式
Calendar c = Calendar.newlnstance(); 获取日历类对象
B.成员方法I
int get(int n); 获取指定日历字段信息
void set(int n,int value); 将指定日历字段设置为指定的值void add(int n,int value);将指定日历字段增加或减少指定的值
public static void main(String[] args) {
Calendar instance = Calendar.getInstance();
System.out.println(instance);
}
}
结果:
java.util.GregorianCalendar[time=1657074477173,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun
.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,la
stRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2022,MONTH=6,WEEK_OF_YEAR=28,WEEK_OF_MONTH
=2,DAY_OF_MONTH=6,DAY_OF_YEAR=187,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=
27,SECOND=57,MILLISECOND=173,ZONE_OFFSET=28800000,DST_OFFSET=0]
/*
成员方法
public int get( int fie1d):返定日历字段的值。
public void set( int field, int value):将给定的日历字段设置为给定值
public abstract void add (int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量
public Date gettime():返回一个表示此 Calendar时间值(从历元到现在的毫秒偏移量)的Date对象
成员方法的参数:
in field:日历类的字段,可以使用Calendar类的静态成员变量获取
*/
public static void main(String[] args) {
demo();
demo01();
demo02();
}
/*
public int get( int field):返回给定日历字段的值参数:传递指定的日历字段(YEAR, MONTH.)返回值:日历字段代表具体的值
*/
private static void demo() {
//使用geiInstance方法获取Calendar对象
Calendar c = Calendar.getInstance();
int i = c.get(Calendar.YEAR);
System.out.println("年"+i);
int i1 = c.get(Calendar.MONTH);
System.out.print("月"+(i1+1));
int i2 = c.get(Calendar.DATE);
System.out.println("日"+i2);
int i3 = c.get(Calendar.HOUR);
System.out.print("时"+i3);
int i4 = c.get(Calendar.MINUTE);
System.out.print("-分"+i4);
int i5 = c.get(Calendar.SECOND);
System.out.print("-秒"+i5);
}
/*
public void set( int field, int value):将给定的日历字段设置为给定值。参数
参数:int field:传递指定的日历字段(YEAR, MONTH)int value:传递的字段设置的具体的值
*/
private static void demo01() {
//使用geiInstance方法获取Calendar对象
Calendar c = Calendar.getInstance();
//设置年为1999
c.set(Calendar.YEAR,1999);
//设置月为1
c.set(Calendar.MONTH,1);
//设置日为1
c.set(Calendar.DATE,1);
//可以同时设置年月日
c.set(1999,12,12);
int A1 = c.get(Calendar.YEAR);
System.out.println("年"+A1);
int A2 = c.get(Calendar.MONTH);
System.out.print("月"+A2);
int A3 = c.get(Calendar.DATE);
System.out.println("日"+A3);
}
/*
public abstract void add (int field, int amount):
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
把指定的字段增加/减少指定的值参数:int field:;
传递指定的日历字段(YEAR, MONTH.)int amount:
增加/减少的值正数:增加负数:减少
*/
private static void demo02() {
//使用geiInstance方法获取Calendar对象
Calendar c = Calendar.getInstance();
c.add(Calendar . YEAR, 2);//把年增加2年
c.add(Calendar.MONTH, -3);//把月减少3个月
c.add(Calendar.DATE,+5);//天数加五
int year = c.get(Calendar . YEAR);
System.out.println(year);
int month = c.get(Calendar.MONTH);
System.out.println(month+1);//西方的月份6-11东方:1-12
int date = c.get(Calendar. DAY_OF_MONTH);
System.out.println(date);
}}