1.Date类(不常用)
1.1Date类概述和构造方法
Date构造方法:
方法名 | 说明 |
---|---|
public Date() | 分配一个Date对象,并初始化,以便它代表它被分配的时间,精确到haomiao |
public Date(long date) | 分配一个Date对象,并将其初始化为表示标准基准时间起指定的毫秒数 |
public class DateDemo {
public static void main(String[] args) {
Date date = new Date();
//输出的是:Wed Nov 20 18:34:26 CST 2019
//返回的是当前时间。
System.out.println(date);
//返回的是1970年加上我传入的毫秒值的时间的年数
//Fri Jan 02 08:00:00 CST 1970
Date date1 = new Date(1000*60*60*24);
System.out.println(date1.getTime());
System.out.println(date1);
//49
System.out.println(date.getTime()/1000/60/60/24/365);
}
}
Date常用方法
方法名 | 说明 |
---|---|
public long getTime() | 获取的是日期对象从1970年1月1日00:00:到现在的毫秒值 |
public void setTime(long time) | 设置时间,给的是毫秒值 |
public String toString() | 把Date对象返回字符串对象 |
package self_study_at_night_Demo;
import java.util.Date;
public class DateDemo {
public static void main(String[] args) {
Date date = new Date();
//返回一个毫秒值,从1970年到现在的毫秒值
System.out.println(date.getTime());
date.setTime(10000000l);
//把Date对象返回字符串对象
System.out.println(date.toString());
//把一个Date值返回integer值
System.out.println(date.toInstant());
}
}
2.日期类
2.1 SimpleDateFormat类概述
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。我们重点学习日期格式化和解析
常用的模式字母及对应关系如下:
y | 年 |
---|---|
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
口诀:四个小姨,两个大妹妹,两个小弟弟。
SimpleDateFormat构造方法
方法名 | 说明 |
---|---|
public SimpleDateFormat() | 构造一个SimpleDateFormat,使用默认模式和日期格式 |
public SimpleDateFormat(String pattern) | 构造一个SimpleDateFormat使用给定的模式和默认的日期格式 |
SimpleDateFormat sdf = new SimPleDateFormat();
SimpleDateFormat sdf = new SimPleDateFormat("YYYY-MM-DD HH-mm-ss");
SimpleDateFormat常用方法
方法名 | 说明 |
---|---|
public final String format(Date date) | 将日期格式化成日期/时间字符串 |
public Date parse (String source) | 从给定字符串的开始解释文本以生成日期 |
package self_study_at_night_Demo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo01 {
public static void main(String[] args) throws ParseException {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//结果2019/11/18 下午8:16
System.out.println(sdf.format(date));
//Mon Nov 18 00:00:00 CST 2019
String s = "2019-11-18";
System.out.println(sdf.parse(s));
}
}
Calendar 类的概述
用于方便操作年月日等其他字段的
-
如何获取Calendar对象
Calendar c = Calendar.getInstance();
Calendar常用方法
方法名 说明 public static Calendar getInstance() 获取Calendar对象 public int get(int field) 根据具体的字段的值,获取相应的年月日等等 public void add(int field,int amount) 设置具体字符串的偏移量 public final void set(int year,int Month,int date) 设置具体的年月日 void set(int field,int value) 根据具体的字段的值,设置具体的年月日 package self_study_at_night_Demo; import java.util.Calendar; /* public static Calendar getInstance() :获取Calendar对象 - public int get(int field) :根据具体的字段的值,获取相应的年月日等 - public void add(int field,int amount) :设置具体的字段的偏移量 - public final void set(int year,int month,int date): 设置具体的年月日 - void set(int field, int value) : 根据具体的字段的值,设置具体的年月日 * */ public class CalendarDemo { public static void main(String[] args) { Calendar c = Calendar.getInstance(); //2019 System.out.println(c.get(Calendar.YEAR)); //11 System.out.println(c.get(Calendar.MONTH)+1); //18 System.out.println(c.get(Calendar.DATE)); c.add(Calendar.YEAR,-1); //2018 System.out.println(c.get(Calendar.YEAR)); c.set(1997,05,13); //1997 System.out.println(c.get(Calendar.YEAR)); c.set(Calendar.YEAR,2010); //2010 System.out.println(c.get(Calendar.YEAR)); } }
案例:二月天案例
package Calendar_lianxi; import java.util.Calendar; import java.util.Scanner; /* 案例需求 获取任意一年的二月有多少天 * */ public class EYuTianDemo { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("请输入年份"); int i = s.nextInt(); Calendar c = Calendar.getInstance(); c.set(i,2,1); c.add(Calendar.DATE,-1); int i1 = c.get(Calendar.DATE); System.out.println(i+"年的二月有:"+i1+"天"); } }