目录
Date类
java.util.Date
学的是在java.utli.包下的那个Date类
在java.lang.和java.sql.包下也有Date类。
Date类表示了一个特定的时间,以毫秒的精度。
构造方法
1、创建一个当前时间的Date对象
//创建一个代表系统当前日期的Date对象
Date d = new Date();
2、创建一个我们指定的时间的Date对象:
使用带参数的构造方法Date(int year, int month, int day) ,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,实际需要代表的月份减去1以后的值。
//创建一个代表2014年6月12号的Date对象
Date d1 = new Date(2014-1900, 6-1, 12); (注意参数的设置)
常用方法
boolean after(Date when) 测试此日期是否在指定日期之后。
boolean before(Date when) 测试此日期是否在指定日期之前。
int compareTo(Date anotherDate) 比较两个日期的顺序。
public long getTime() 获取的是日期对象从1970·1·1 00:00:00到现在的毫秒值
public void setTime(long time) 设置时间,给的是毫秒值
SimpleDateFormat类
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。我们重点学习日期格式化和解析
日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从‘A’到‘Z”以及从‘a’
到‘Z’引号的字母被解释为表示日期或时间字符串的组件的模式字母
常用的模式字母及对应关系如下:
y 年
M 月
d 日
H 时
m 分
S 秒
SimpleDateFormat 格式化和解析日期
- 格式化(从Date到String)
- public final String format(Date date): 将日期格式化成日期/时间字符串
- 解析(从String到Date)
- public Date parse(String source): 从给定字符串的开始解析文本以生成日期
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class SimpleDateFormatDemo {
public static void main(String[] args) throws ParseException {
//格式化:从 Date 到 String
Date d = new Date();
//SimpleDateFormat sdf = new SimpleDateFormat();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
String s = sdf.format(d);
System.out.println(s);
System.out.println("---------");
//从String到Date
String ss="2048-08-09 11:11:11";
//ParseException
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dd = sdf2.parse(ss);
System.out.println(dd);
}
}
输出为:(CST是中国标准时间)
2021年10月11日13:29:01
---------
Sun Aug 09 11:11:11 CST 2048
Calender类
Calendar是一个抽象类,主要用来操作日历时间字段。在Java.util.Calendar包中.
Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
Calendar提供了一个类方法getInstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化:
Calendar rightNow = Calendar.getInstance();
常用方法
其中set,get,add常用。
关于Calendar用法的一些总结https://blog.csdn.net/tiantangdizhibuxiang/article/details/77429346
案例:二月天
需求:获取任意一年的二月有多少天
思路:
①键盘录入任意的年份
②设置日历对象的年、月、日
年:来自于键盘录入
月:设置为3月,月份是从0开始的,所以设置的值是2
日:设置为1日
③3月1日往前推一天,就是2月的最后一天
④获取这一天输出即可
答案:
import java.util.Calendar;
import java.util.Scanner;
public class CalendarTest{
public static void main(String[] args) {
//键盘录入任意的年份
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份:");
int year = sc.nextInt();
//设置日历对象的年、月、日
Calendar c = Calendar.getInstance();
c.set(year,2, 1);
//3月1日往前推一天,就是2月的最后一天
c.add(Calendar.DATE,-1);
//获取这一天输出即可
int date = c.get(Calendar.DATE);
System.out.println(year + "年的2月份有" + date + "天");
}
}