Java基础(38):Calendar类的应用(优于Date类)

Calendar 类的应用

Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calendar 类进行时间和日期的处理。

java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();

那么如何使用 Calendar 获取年、月、日、时间等信息呢?我们来看下面的代码:

其中,调用 Calendar 类的 getInstance() 方法获取一个实例,然后通过调用 get() 方法获取日期时间信息,参数为需要获得的字段的值, Calendar.Year 等为 Calendar 类中定义的静态常量。

运行结果: 

Calendar 类提供了 getTime() 方法,用来获取 Date 对象,完成 Calendar 和 Date 的转换,还可通过 getTimeInMillis() 方法,获取此 Calendar 的时间值,以毫秒为单位。如下所示:

运行结果:

例子:

实现获取 Calendar 对象,并转换为指定格式的时间

 1 import java.text.SimpleDateFormat;
 2 import java.util.Calendar;
 3 import java.util.Date;
 4
 5 public class HelloWorld {
 6
 7     public static void main(String[] args) {
 8         // 创建Canlendar对象
 9         Calendar c = Calendar.getInstance();
10
11         // 将Calendar对象转换为Date对象
12         Date date = c.getTime();
13
14         // 创建SimpleDateFormat对象,指定目标格式
15         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
16
17         // 将日期转换为指定格式的字符串
18         String now = sdf.format(date);
19         System.out.println("当前时间:" + now);
20     }
21 }

输出结果:

当前时间:2016-03-31 08:08:33
时间: 2024-11-10 07:32:16

Java基础(38):Calendar类的应用(优于Date类)的相关文章

java基础系列--Calendar类

原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7136575.html 1.Calendar概述 Java官方推荐使用Calendar来替换Date的使用,Calendar与Date之间可以自由的进行转换,转换的纽带是time,使用Calendar的getTime()方法可以得到一个Date类型的对象,这个对象底层是使用Date的第二个带Long型参数的构造器创建的,这个Long型参数是Calendar中的time字段中保存的值,这个t

Java基础之Calendar类

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法.瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量.与其他语言环境敏感一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象.Calendar的getInstance 方

Effective Java 第三版——42.lambda表达式优于匿名类

Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用. 42.lambda表达式优于匿名类 在Java 8中,添加了函数式接口,lambda表达式和方法引用,以便更容易地创建函数对象. Stream API随着其他语言的修改一同

整理Java基础知识--Calendar 类

Java Calendar类Calendar 类是 abstract 类 实际使用时实现特定的子类对象 创建一个代表当前日期的Calendar 对象Calendar ss = Calendar.getInstance();Calendar 类对象字段类型 常量 描述 Calendar.YEAR 年 Calendar.MONTH 月 Calendar.DATE 日 Calendar.DAY_OF_MONTH 日期 Calendar.HOUR 12小时制 Calendar.HOUR_OF_DAY 2

Java基础---IO(三)--IO包中的其他类

第一讲     对象序列化 一.概述 将堆内存中的对象存入硬盘,保留对象中的数据,称之为对象的持久化(或序列化).使用到的两个类:ObjectInputStream和ObjectOutputStream 二.特有方法 ObjectInputStream: Object readObject();//从ObjcetInputStream中读取对象 ObjectOutputStream: void writeObject(Objcet obj);//将指定对象写入ObjcetOutputStream

【Java 基础篇】【第五课】类的构造函数

Java 也有自己的构造函数,如同c++一样有两个特征: 1.构造函数的名字和类的名字相同 2.构造函数没有返回值 下面来看一下这个例子: 1 public class test 2 { 3 public static void main(String[] args) 4 { 5 Human aman = new Human(20); 6 } 7 } 8 9 10 class Human 11 { 12 // constructor 13 // 然后再进行构造初始化 14 Human(int h

Java基础 - 第二天 Eclipse、运算符、Scanner类

第1章    Eclipse 1.1     Eclipse概述 l 概述 Eclipse是一个专门针对Java的集成开发工具(IDE),是IBM公司的产品.是免费.开源.由Java语言编写.所以,需要有JRE运行环境并配置好环境变量.它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就是Eclipse进行开发. l 特点描述 n 免费 n 纯Java语言编写 n 免安装 n 扩展性强 l 下载和安装 n 下载 http://eclipse.org/ n 安装 绿色版 解压

Java基础-接口看下图实现如下接口和类,并完成Adventure中的主方法

package hanqi; public interface CanSwim { void swim(); } package hanqi; public interface CanFly { public void fly(); } package hanqi; public abstract class ActionCharacter { abstract void fight(String emp); abstract void speak(String s); } package ha

Java连载78-深入自动拆装箱、Date类和SimpleDateFormat格式化

一.深入自动拆装箱 1.直接举例: public class D78_AutomaticUnpackingAndPacking{ public static void main(String[] args){ Integer i1 = new Integer(10); Integer i2 = new Integer(10); //这里不会自动进行拆箱 System.out.println(i1==i2);//false //比较两个Integer类型的数据是否相等,不能用“==" //Inte