日期操作类----Java常用类库
前言
在我们的日常编程中,经常会对日期进行显示或操作,在java中也提供了几种日期的操作类,如Date、Calendar、GregorianCalendar、DateFormat、SimpleDateFormat类等,方便我们对日期进行查看或格式化输出,哈哈,下面允许我稍微介绍介绍。
日期操作类的介绍
在java中对于日期操作的类比较多,下面我来简单介绍一下这些类哦,哈哈哈,有兴趣的小伙伴也可以查看相关的文档哦!
Date类
Date类为日期的简单操作类,导入java.util.Date即可使用,实例化对象输出后即为当前的完整日期,但此对象输出的日期格式并不与我们平常看到的日期格式相匹配,一会我们可以通过DateFormat类进行格式化输出。
代码演示
package chapter_eleven;
import java.util.Date;
public class DateDemo01 {
public static void main(String[] args) {
Date date = new Date(); //实例化Date类对象
System.out.println("当前时间为---->" + date); //输出日期
}
}
运行结果
当前时间为---->Sat Jun 27 17:31:55 CST 2020
Calendar类
此类是一个抽象类,需要依靠其子类GregorianCalendar进行对象的向上转型实例化,此类具有很多的静态属性,这些属性取得的时间可以精确到毫秒并且时间表示格式有多种格式,可以完整输出当前时间的各种表示。
代码演示
package chapter_eleven;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class DateDemo02 {
public static void main(String[] args) {
Calendar calendar = new GregorianCalendar(); //声明一个Calendar对象,通过其子类为其实例化
System.out.println("当前年份---->" + calendar.get(calendar.YEAR)); //输出当前年份
System.out.println("当前月份---->" + (calendar.get(calendar.MONTH) + 1)); //输出当前月份
System.out.println("当前日期---->" + calendar.get(calendar.DAY_OF_MONTH)); //输入当前日期
System.out.println("当前小时---->" + calendar.get(calendar.HOUR_OF_DAY)); //输出当前小时
System.out.println("当前分钟---->" + calendar.get(calendar.MINUTE)); //输出当前分钟
System.out.println("当前秒数---->" + calendar.get(calendar.SECOND)); //输出当前秒数
}
}
运行结果
当前年份---->2020
当前月份---->6
当前日期---->27
当前小时---->17
当前分钟---->38
当前秒数---->15
DateFormat类
此类是一个日期的格式化抽象类,用于将日期进行格式化,以用户适应的方式显示日期。此类常常配合Date类进行对日期格式的优化,输出日期。
主要方法
序号 | 方法 | 类型 | 描述 |
---|---|---|---|
1 | public static final DateFormat getDateInstance() | 普通 | 得到默认的对象 |
2 | public static final DateFormat getDateInstance(int style, Locale aLocale) | 普通 | 根据Locale得到对象 |
3 | public static final DateFormat getDateTimeInstance() | 普通 | 得到日期时间对象 |
4 | public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale) | 普通 | 根据Locale得到日期时间对象 |
代码演示
package chapter_eleven;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
public class DateDemo03 {
public static void main(String[] args) {
DateFormat df1 = null; //声明DateFormat类对象
DateFormat df2 = null;
DateFormat df3 = null;
DateFormat df4 = null;
df1 = DateFormat.getDateInstance(); //取得日期
df2 = DateFormat.getDateTimeInstance(); //取得日期时间
df3 = DateFormat.getDateInstance(DateFormat.ERA_FIELD, //以中国格式输出日期格式
new Locale("zh","CN")); //以中国格式输出日期时间格式
df4 = DateFormat.getDateTimeInstance(DateFormat.ERA_FIELD,
DateFormat.ERA_FIELD,new Locale("zh","CN"));
System.out.println("DATE: " + df1.format(new Date())); //格式化日期输出
System.out.println("DATETIME: " + df2.format(new Date())); //格式化日期时间输出
System.out.println("CHINA--DATE: " + df3.format(new Date())); //CHINA格式化日期输出
System.out.println("CHINA--DATETIME: " + df4.format(new Date())); //CHINA格式化日期时间输出
}
}
运行结果
DATE: 2020-6-27
DATETIME: 2020-6-27 18:12:01
CHINA--DATE: 2020年6月27日 星期六
CHINA--DATETIME: 2020年6月27日 星期六 下午06时12分01秒 CST
SimpleDateFormat类
在java的项目开发中,SimpleDateFormat类会经常被用到,此类可以通过定义一个完整的日期转换模板,将一种日期格式转化为另外一种日期格式,由于此类使用较为复杂,所以直接给出代码演示和运行结果,对此类感兴趣的小伙伴可以自行查阅API文档哦!
主要方法
序号 | 方法 | 类型 | 描述 |
---|---|---|---|
1 | public SimpleDateFormat(String pattern) | 构造 | 通过一个指定的模板构造对象 |
2 | public Date parse(String sourse) throws Exception | 普通 | 将一个包含日期的字符串转换为Date类型 |
3 | public final String format(Date date) | 普通 | 将一个Date类型按照指定格式变为String类型 |
代码演示
package chapter_eleven;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDemo04 {
public static void main(String[] args) {
String strDate = "2020-06-27 18:33:30.111"; //定义日期时间的字符串
String pat1 = "yyyy-MM-dd HH:mm:ss.SSS"; //定义第一个模板
String pat2 = "yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒 SSS 毫秒"; //定义第二个模板
SimpleDateFormat simpleDateFormat01 = new SimpleDateFormat(pat1); //实例化模板对象
SimpleDateFormat simpleDateFormat02 = new SimpleDateFormat(pat2); //实例化模板对象
Date d = null; //定义日期类
try{
d = simpleDateFormat01.parse(strDate); //将字符串转换为日期类
}catch (Exception e){
e.printStackTrace();
}
System.out.println(simpleDateFormat02.format(d)); //以新的格式输出日期
}
}
运行结果
2020 年 06 月 27 日 18 时 33 分 30 秒 111 毫秒
总结
哈哈哈,不知不觉写了这么多,其中还是主要对Date、Calendar的日期操作类及DateFormat、SimpleDateFormat的日期格式化显示类介绍了介绍,做做笔记,如果我写的哪里有问题或者小伙伴有疑问,欢迎留言交流,一起进步哦,嘿嘿!