Java中Date和Calendar类的使用

​​​在调用时间系统时间时,会用到这两个类。

首先Date是一个具体类,可以创建对象:

Date date = new Date();无参数对应的是系统当前时间。

如果此时在控制台输出:

System.out.println(date);​得到Sun Apr 09 12:17:02 CST 2017

但不是日常我们看到的格式。

此时要用另一个类DateFormat(抽象类)或者其子类SimpleDateFormat类(具体类)。

首先DateFormat的使用:

DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
//短格式日期

然后用df.formate(date);得到一个字符串类型的值。String str = df.format(date);输出str即为短格式日期,如:17-4-9,代表2017年4月9日。如果用DateFormat.Full或DateFormat.MEDIUM或DateFormat.LONG做参数会得到不同的时间格式。

若用SimpleDateFormat类,则可以实例化,即

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");指定时间格式

然后调用sdf.format(date);得到一个字符串,输出即可:2017-04-09 12:17:02

Date的对象有一个getTime()方法,得到的是一个long类型,查阅相关资料得出结论:在构造时调用了System.currentTimeMillis();方法,返回的是从1970年一月一日00时00分00秒到现在的毫秒数。

再说Calendar类:

Calendar类是一个抽象类,他有一个子类为GregorianCalendar

首先使用Calendar类:

Calendar calendar = Calendar.getInstance();此时就可以调用对象calendar的get方法的到年月日时分秒等。

calendar.get(Calendar.YEAR);//年

calendar.get(Calendar.MONTH);//月

calendar.get(Calendar.HOUR_OF_DAY);//时

还有Calendar.DAY_OF_MONTH表示日,其他参数在使用联想功能即可显示,选择即可。

得到对应的值,按照自己的格式输出即可。

再说GregorianCalendar,它可以有实例对象。

GregorianCalendar gc = new GregorianCalendar();

之后调用同Calendar。

在DateForamt和SimpleDateFormat中还有parse方法,将指定格式的串输出为Date类型。

实时先来DateFormat的例子

DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);

 String str = df.format(date);

此时的str为DateFormat.SHORT 格式,接下来调用df.parse(str);得到了一个Date类型。

比如:短格式为:17-4-9

转换之后为:Sun Apr 09 00:00:00 CST 2017,可以看到时分秒为0 ,也就是说如果你的str中没有Date的某一部分,会输出为0.

再说SimpleDateFormat类

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); 

String str = "2017年4月9日 13时9分20秒";

sdf.parse(str);

得到Date类型。也就是parse可以将指定时间格式的串转化为Date类型。

发布了51 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/cuiyaocool/article/details/79450940