Java中Date、DateFormat、Calendar类

Date类

需要导包
1、 jdk1之前使用,之后使用Calendar类
2、 构造方法
 a) Date();根据当前的默认毫秒值创建日期
 b) Date(long date)根据给定毫秒值创建日期对象,以1970年1月1日 0点0分0秒开始,由于时区问题,北京在东八区所以北京时间是在1970年1月1日 8点0分0秒开始
3、 成员方法
 a) public long getTime();获取时间以毫秒为单位;
 b) public void setTime();设置时间

DateFormat类是日期/时间格式化子类的抽象类,

使用具体抽象类SimpleDateFormat类实现
1、 SimpleDateFormat类的构造方法
 a) SimpleDateFormat()默认方法
 b) SimpleDateFormat(String pattern)指定方法
  i. 年Y、月M、日d、时H、分m、秒s
  ii. pattern可以设置为YYYY年MM月dd日HH:mm:ss
  iii. 显示结果为2018年10月26日17:55:50
 当给定时间转换为字符串和给定一个字符串得到时间的具体办法都在实例中
2、 String-Date
 a) public Date parse(String source)
3、 Date-String
 a) public final String format(Date date)
字符串和指定时间格式转换实例

package test09_date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateDemo {
	public static void main(String[] args) throws ParseException {
		//Date-String
		Date d1=new Date();
		SimpleDateFormat sdf1=new SimpleDateFormat("YYYY年MM月dd日HH:mm:ss");
		String s1=sdf1.format(d1);
		System.out.println(s1);
		
		//String-Date
		//注意s2和sdf2格式需要完全一样
		String s2="2018-10-26 18:08:16";
		SimpleDateFormat sdf2=new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
		Date d2=sdf2.parse(s2);
		System.out.println(d2);
	}
}

输出结果
在这里插入图片描述

Calendar类

抽象类
1、 public int get(int field)//返回给定日历字段field(可以是年YEAR月MONTH日DATE)的值,每个日历字段都是静态的成员变量,并且是int类的,其中月是从0开始所以月份最终实际月份需要加1。
 a) Calendar c=Calendar.getInstance();//获取子类对象(因为Calendar为抽象类)
 b) int year=c.get(Calendar.YEAR);
 c) int month=c.get(Calendar.MONTH);
 d) int date=c.get(Calendar.DATE);
2、 public void add(int field,int amount);
 a) 根据给定的日历字段field对当前日历进行加amount(可为负数)操作
3、 public final void set(int year,int month,int year)
 a) 设置当前日历的时间
4、 public long getTimeInMillis()获取当前calendar的时间值,以毫秒为单位
5、 获取任意年份的二月有多少天实例

package test09_date;

import java.util.Calendar;
import java.util.Scanner;

//获取任意年份二月的天数
//	1、输入年份
//	2、设置当前对象的年月日,设置月为2(其实是3月)日是1,即实际的3月1号
//	3、之后看设置对象的前一天的日期,该日期中的天数即为2月的天数。

public class CalendarDemo {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入当前年份");
		int year=sc.nextInt();
		//输入完毕后关闭扫描器以节省资源不加会有警告
		sc.close();
		Calendar c=Calendar.getInstance();
		c.set(year,2,1);
		c.add(Calendar.DATE, -1);
		System.out.println(c.get(Calendar.DATE));
			
		
	}
}

猜你喜欢

转载自blog.csdn.net/zfliu96/article/details/83447492