1.Date类日常使用
- 构造方法
构造方法 | 说明 |
---|
Date() | 使用系统当前时间创建对象 |
Date(long date) | 设置毫秒数以1970/1/1为基准创建日期 |
Date(int year, int month, int date) | 创建指定年、月、日的日期对象(基准年份是1900) |
Date(int year, int month, int date,int hrs, int min, int sec) | 创建指定年、月、日、时、分、秒的日期对象(基准年份是1900) |
- 构造实例
Date date1 = new Date();
System.out.println(date1);
Date date2 = new Date(0);
System.out.println(date2);
Date date3 = new Date(118,7,2);
System.out.println(date3);
Date date4 = new Date(118,7,24,8,34,34);
System.out.println(date4);
- 常用方法
方法 | 说明 |
---|
boolean after(Date when) | 如果当前日期对象在when指定的日期对象之后,返回true,否则返回false |
boolean before(Date when) | 如果当前日期对象在when指定的日期对象之前,返回true,否则返回false |
void getTime() | 获取自1970年1月1日起到指定日期的毫秒数 |
boolean equals(Object obj) | 两个日期对象完全相同,返回true,否则返回false |
String toString() | 日期转字符串 |
- 方法实例
Date date = new Date();
System.out.println(date.before(new Date(119,1,1)));
System.out.println(date.after(new Date(119,1,1)));
System.out.println(date.getTime());
Date date2 = new Date();
Date date3 = new Date(date.getTime());
System.out.println(date.equals(date2));
System.out.println(date.equals(date3));
System.out.println(date.toString());
2.Calendar类日常使用
- 注意:calendar类是抽象类,无法实例化,只能通过类中的getInstance()方法才能获得
- 常用方法
方法 | 说明 |
---|
Calendar getInstance() | 返回默认地区和时区的Calendar对象 |
int get(int fields) | 返回调用对象中fields指定部分的值 |
void set(int fields, int value) | 将value中指定的值设置到fields指定的部分 |
void add(int fields, int amount) | 将amount值添加到fields指定的时间或日期部分 |
- 方法实例
public static void main(String[] args) throws ParseException {
Calendar cal = Calendar.getInstance();
show(cal);
cal.set(2018, 1, 1);
show(cal);
cal.set(1987, 7, 2, 2, 12, 12);
show(cal);
cal.set(Calendar.YEAR, 2019);
cal.set(Calendar.MONTH, 9);
cal.set(Calendar.DATE, 9);
cal.set(Calendar.HOUR, 9);
cal.set(Calendar.MINUTE, 9);
cal.set(Calendar.SECOND, 9);
show(cal);
cal.add(Calendar.YEAR, 1);
cal.add(Calendar.MONTH, 1);
show(cal);
}
public static void show(Calendar cal){
System.out.print("日历的时间为:");
System.out.print(cal.get(Calendar.YEAR) + "年");
System.out.print((cal.get(Calendar.MONTH)+1) + "月");
System.out.print(cal.get(Calendar.DATE) + "日");
System.out.print(cal.get(Calendar.HOUR) + ":");
System.out.print(cal.get(Calendar.MINUTE) +":");
System.out.println(cal.get(Calendar.SECOND));
}
3.Date与Calendar转换
- Calendar的另外两个重要方法
方法 | 说明 |
---|
void setTime(Date date) | 利用Date类型参数设置Calendar时间 |
Date getTime() | 返回Date类型的时间对象 |
- 方法实例
Date date1 = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String dateStr = df.format(date1);
System.out.println(dateStr);
String strTime = "2018-2-20 19:13:43";
df.applyPattern("yyyy-MM-dd HH:mm:ss");
Date date2 = df.parse(strTime);
System.out.println(date2);
Calendar cal = Calendar.getInstance();
Date date3 = cal.getTime();
System.out.println(date3);
cal.setTime(date2);
System.out.println(cal.getTime());
4.总结
- 操作时间时,Calendar类要更加灵活一些,无论是设置、获取还是修改时间的某一部分,Calendar都能够轻松做到
- 无论是Date类还是Calendar类,在设置或获取月份(注意:只获取月份)时,月份数字都代表上个月,比如需要设置10月份,则在代码中应该写的是数字9
- System.out.println(new Date()),展示的是真实的月份,不要和第2点搞混
- Date类实例化:
- 参数如果是毫秒数,基准年份是1970;
- 参数如果是年月日格式,基准年份是1900
- Date类与Calendar类,都有一个getTime()方法,注意区别:
- 在Date类中表示获取1970至所设置时间的毫秒数
- 在Calendar类中表示转换成Date类型
- Date和Calendar之间的转换,用的是Calendar类中setTime()和getTime()方法