Date时间类
类 Date
表示特定的瞬间,精确到毫秒。
在 JDK 1.1 之前,类 Date
有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar
类实现日期和时间字段之间转换,使用 DateFormat
类来格式化和解析日期字符串。Date
中的相应方法已废弃。
该类现在很少用了
<span style="font-size:18px;"> //日期类
Date now = new Date();
System.out.println(now);
</span>
Calendar日历类
Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些
Calendar类对象的创建(重点)
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象。由于Calendar类是抽象类,且Calendar类的构造方法是protected的,所以无法使用Calendar类的构造方法来创建对象,API中提供了getInstance方法用来创建对象。
a、创建一个代表系统当前日期的Calendar对象
Calendar c = Calendar.getInstance();//默认是当前日期
b、创建一个指定日期的Calendar对象
使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。
//创建一个代表2013年5月5日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2013, 5 - 1, 5);
<span style="font-size:18px;">//日历类
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
int week = c.get(Calendar.DAY_OF_WEEK);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
int millisecond = c.get(Calendar.MILLISECOND);//毫秒
String[] weeks = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
System.out.println(year + "年" + month + "月" + day + "日" + hour + ":" + minute + ":" + second +":"+millisecond+ " 星期:" +weeks[week]);
</span>
DateFormat类
DateFormat 是日期/时间格式化子类的 抽象类 ,它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、分析(文本-> 日期)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年,1 月 1 日 00:00:00 这一刻开始的毫秒数。
五、SimpleDateFormat类
public class SimpleDateFormat extends DateFormat
SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。
所以本类可以实现:String 到 Date Date到String的互转,如下:
SimpleDateFormat对象最常用的就是一下两招了:
//注意构造函数中是SimpleDateFormat类解析日期的模式,大小写代表的意义完全不一样哦
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//日期到字符串的转换
String today = df.format(new Date());
//字符串到日期的转换
Date date = df.parse("2009-06-12 02:06:37");
System.out.println(df.format(new Date()));
//使用时间日期格式化模板
DateFormat df = new SimpleDateFormat("yyyy年mm月dd日 HH:mm:ss SSS");
String nowDate = df.format(new Date());
System.out.println(nowDate);
(月份mm打错了。。。结果。。。改MM)
日期时间转换
//表示当前系统的时间(毫秒)
long date2 = System.currentTimeMillis();//毫秒