一、Date类
Date 类在java.util 包。这个类最主要的作用就是获取当前时间,Calendar类取代了Date 类很多的功能,下面为 Date 类获取当前时间:以默认的英文格式输出日期和时间。
import java.util.*;
public class Example22 {
public static void main(String[] args) {
Date date1 = new Date(); // 创建表示当前时间的Date对象
Date date2 = new Date(60000); // 创建表示时间戳的Date对象,6000表示1970年一月一日00:00:00以来的毫秒数
System.out.println(date1);
System.out.println(date2);
}
}
/*结果:
Sat Jul 22 18:29:23 CST 2017
Thu Jan 01 08:01:00 CST 1970
*/
二、Calendar类
1、java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar cal = Calendar.getInstance();
2、Calendar类中的常量:
Calendar.YEAR | 年份 | Calendar.SECOND | 秒 |
Calendar.MONTH | 月份 | Calendar.DAY_OF_YEAR | 一年的第几天 |
Calendar.DATE | 日期 | Calendar.DAY_OF_MONTH | 一个月的第几天 |
Calendar.HOUR | 12小时制的小时 | Calendar.DAY_OF_WEEK | 星期几 |
Calendar.MINUTE | 分钟 | Calendar.HOUR_OF_DAY | 24小时制的小时 |
3、Calendar类中的方法,主要有如下:
int get(参数):返回指定日历字段的值
void add(参数1,参数2): 为指定的日历字段增加或减去指定的时间量
void set(参数1,参数2.....): 设置某个时间,时间操纵就从设置的那个时间开始。
如下例子
package tcy02;
import java.util.*;
public class Example23 {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance(); // 当前时间的对象cal
int year = cal.get(Calendar.YEAR); // 获取当前年份
int month = cal.get(Calendar.MONTH) + 1; // 获取当前月份
int day = cal.get(Calendar.DATE); // 获取当前日
int h = cal.get(Calendar.HOUR); // 获取时
int m = cal.get(Calendar.MINUTE); // 获取分
int s = cal.get(Calendar.SECOND); // 获取秒
System.out.println("当前时间为:" + year + "/" + month + "/" + day + "/ "
+ h + "时 " + m + "分 " + s + "秒");
System.out.println("新设置的时间为:2018/6/3");
cal.set(2017, 7, 7);//设置时间
cal.add(Calendar.HOUR, 1000);//设置时间间隔
//Calendar.YEAR,Calendar.MONTH,Calendar.DATE,Calendar.HOUR,Calendar.MINUTE,Calendar.SECOND
int year1 = cal.get(Calendar.YEAR);
int month1 = cal.get(Calendar.MONTH) + 1;
int day1 = cal.get(Calendar.DATE);
System.out.println("新设置的时间之后1000小时后的日期为:" + year1 + "年" + month1 + "月" + day1 + "日");
}
}
/*
当前时间为:2017/7/22/ 8时 5分 0秒
新设置的时间为:2018/6/3
新设置的时间之后1000小时后的日期为:2017年9月18日
*/
4、Calendar和Date的转化
//Calendar转化为Date
Calendar cal=Calendar.getInstance();
Date date=cal.getTime();
//Calendar转化为Date
Calendar cal=Calendar.getInstance();
Date date=cal.getTime();
三、DateFormat类
Date 类获取的时间是以默认的英文格式输出日期和时间.DateDateFormat类专门用于将日期格式化为字符串或者特定格式显示的字符串转换成一个Date对象。DateFormat类是抽象类,不能被直接实例化,但它提供了静态方法,通过这些方法可以获取DateFormat类的实例对象,并调用其他相应的方法进行操作。1、DateFormat类中的四个常量:
DateFormat.FULL : 完整格式 2017年7月22日 星期六
DateFormat.LONG: 长格式 2017年7月22日
DateFormat.MEDIUM: 普通格式 2017-7-22 20:26:07
DateFormat.SHORT: 短格式 17-7-22 下午8:26
2、DateFormat类中的方法
package tcy02;
import java.text.*;
import java.util.*;
public class Example26 {
public static void main(String[] args) {
Date date = new Date();
//日期格式器对象
DateFormat format1 = DateFormat.getDateInstance();//默认
DateFormat fullFormat = DateFormat.getDateInstance(DateFormat.FULL);// Full格式
DateFormat longFormat = DateFormat.getDateInstance(DateFormat.LONG);// Long格式
DateFormat format2 = DateFormat.getDateTimeInstance();//默认
DateFormat mediumFormat = DateFormat.getDateTimeInstance(
DateFormat.MEDIUM, DateFormat.MEDIUM);// medium格式
DateFormat shortFormat = DateFormat.getDateTimeInstance(
DateFormat.SHORT, DateFormat.SHORT);// short格式
System.out.println("当前日期 时间的默认格式" + format1.format(date));
System.out.println("当前日期的完整格式:" + fullFormat.format(date));
System.out.println("当前日期的长格式:" + longFormat.format(date)+"\n");
System.out.println("当前日期 时间的默认格式" + format2.format(date));
System.out.println("当前日期 时间的普通格式:" + mediumFormat.format(date));
System.out.println("当前日期 时间的短格式:" + shortFormat.format(date));
}
}
/*结果:
当前日期的完整格式:2017年7月22日 星期六
当前日期 时间的默认格式2017-7-22
当前日期的长格式:2017年7月22日
当前日期 时间的默认格式2017-7-22 20:38:57
当前日期 时间的普通格式:2017-7-22 20:38:57
当前日期 时间的短格式:17-7-22 下午8:38
*/
四、SimpleDateFormat类
可以使用 SimpleDateFormat 来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可将文本转换为日期。1、可以使用 format() 方法将日期转换为指定格式的文本,将时间转换为指定的格式的字符串
2、可以使用 parse() 方法将文本转换为日期,这两个方法都是DateFormat类中的静态方法,SimpleDateFormat类是DateFormat类中的子类。
// 创建Long格式的DateFormat对象
DateFormat time = DateFormat.getDateInstance(DateFormat.LONG);
String dt="2018年6月3日";
System.out.println(time.parse(dt)); // 将对应格式的字符串解析成Date对象
1,2综合下例:package tcy02;
import java.text.*;
import java.util.*;
public class Example28 {
public static void main(String[] args) throws Exception {
// 创建一个SimpleDateFormat对象
SimpleDateFormat time1 = new SimpleDateFormat("Gyyyy年MM月dd日");
SimpleDateFormat time2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
SimpleDateFormat time3 = new SimpleDateFormat("今天是今年的第D天,第w周,这个月的第W周,E,今天的第k个小时");
// 按SimpleDateFormat对象的日期模板格式化Date对象
System.out.println(time1.format(new Date()));
System.out.println(time2.format(new Date()));
System.out.println(time3.format(new Date())+"\n");
//将字符串解析成Date对象,使用 parse() 方法将文本转换为日期,日期格式为time2
String dt="2018/6/3 4:30:00";
System.out.println(time2.parseObject(dt));
}
}
/*结果:
公元2017年07月22日
2017/07/22 19:21:09
今天是今年的第203天,第29周,这个月的第4周,星期六,今天的第19个小时
Sun Jun 03 04:30:00 CST 2018
*/