时间类Date
在java中,返回的时间是以起始时间:1970年00:00:00,开始计算的,以毫秒为单位。
Date d=new Date();//返回当前的时间;
但是在java中,Date时间类,很多的方法已经被废弃。基本不再使用了。
现在基本都是使用Calendar类。
日期Calendar类
在Calendar类中的时间格式化类:SimpleDateFormat是继承DateFormat
时间格式化字符的含义
yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小时制(0-11)。
z:表示时区
日期不同格式的转换
public class TimeTest {
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
//把时间对象按照“格式字符串指定的格式”转成相应的字符串
Date d=new Date();
DateFormat df=new SimpleDateFormat("yyyy-MM-dd");//SimpleDateFormat是继承了DateFormat
System.out.println(df.format(d));
//把字符串按照“格式字符串指定的格式”转成相应的时间对象
DateFormat df2=new SimpleDateFormat("yyyy年MM月dd日hh小时mm分ss秒");
Date date=df2.parse("1998年08月15日17小时30分20秒");
System.out.println(date);
//其他格式字符的测试
DateFormat df3=new SimpleDateFormat("D");//表示的是每一年中的第多少天
String s1=df3.format(d);
System.out.println(s1);
}
}
在日历类中还提供了关于日期计算的相关功能
GregorianCalendar类是Calendar的一个子类,提供了世界上大多数国家、地区使用的标准日历系统。
关于GregorianCalendar类中一些方法的测试
public class TimeTest {
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
//创建日期类
Calendar c=new GregorianCalendar(2020,10,9,22,10,50);
//获得日期的相关元素
int year=c.get(Calendar.YEAR);//
int m=c.get(Calendar.MONDAY);//0-11表示的十二个月
int week=c.get(Calendar.DAY_OF_WEEK);//1-7:1.sun.2.mon
int day=c.get(Calendar.DATE);//或者DAY_OF_MONTH;
System.out.println(c);//时间内容
System.out.println(year+" "+m+" "+week+" "+day);
//设置日期的相关日期
Calendar c1=new GregorianCalendar();
c1.set(Calendar.YEAR,1998);
System.out.println(c1);
//日期的计算
Calendar c2=new GregorianCalendar();
c2.add(Calendar.DATE, 100);//往后100天。往前100天用-100;
System.out.println(c2);
//日期对象和时间对象的转换
Date d4=c2.getTime();
System.out.println(d4);
Calendar c3=new GregorianCalendar();
c3.setTime(new Date());
printCalendar(c3);
}
//在上面打印日期类的时候有很多信息是我们不想看到的,
//因此我们封装一个方法,打印出我们所需要的信息。
public static void printCalendar(Calendar c) {
//打印的格式:0000年00月00日 00:00:00 周三
int year=c.get(Calendar.YEAR);
int m=c.get(Calendar.MONDAY)+1;
int week=c.get(Calendar.DAY_OF_WEEK)-1;
String s= week==0?"日":week+"";//将星期转化为我们熟悉的格式
int day=c.get(Calendar.DATE);
int h=c.get(Calendar.HOUR);
int mi=c.get(Calendar.MINUTE);
int se=c.get(Calendar.SECOND);
System.out.println(year+"年"+m+"月"+day+"日 "+h+":"+mi+":"+se+" 周"+s);
}
}