一.日期操作类
java.util.Date
如果要想通过这个类取得当前的日期时间,那么只需要直接实例化Date类对象即可:public Date()。
package cn.mldn.demo;
import java.util.Date;
publicclass TestDemo {
publicstaticvoid main(String[] args) throws Exception {
Date date = new Date();
System.out.println(date); // Tue Dec 18 15:02:28 CST 2020
}
}
但是发现,这个时候返回的日期时间实在是不能够被一些人所看懂,所以在之后需要对其进行转换。
提示:
关于long和日期时间的转换在Date对象之中本身是包含了日期时间数据,但是如果要想让其和
long数据之间互相转换,则需要以下方式:
方式一:
将Date型数据变为long型数据,
public long getTime()
package cn.mldn.demo;
import java.util.Date;
public class TestDemo {
public static void main(String[] args)
throws Exception {
Date date = newDate();
long num = date.getTime() ;
System.out.println(num);
}
}
方式二:
将long型变为日期型数据,
public Date(long date)
package cn.mldn.demo;
import java.util.Date;
public class TestDemo {
public static void main(String[] args)
throws Exception {
Date date = new Date(System.currentTimeMillis());
// long --> Date
System.out.println(date);
}
}
以上的两种转换操作,在日后的开发之中一定会出现,必须使用熟练。
日期格式化操作类:
二.Calendar类
public abstract class Calendar
直接已知子类:GregorianCalendar
是一个抽象类,需要使用子类对象进行实例化。使用此类可以将日期精确到毫秒。以下取得一个完整日期。
public class CalendarDemo {
public static void main(String[] args) {
Calendar calendar = new GregorianCalendar();
//取得年份
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));
//取得毫秒
System.out.println("毫秒:" +calendar.get(Calendar.MILLISECOND));
}
}
注意:在取得月份的时候要加1.
三.日期格式化操作类:
DateFormat类
此类是一个日期的格式化类,专门用来格式化日期。由于Date类已经包含了完整的日期,只需要将此日期进行格式化操作即可。
public abstract class DateFormat
此类是一个抽象类,需要子类进行实例化,但是该类本身提供了实例化操作。
public class DateDemo2 {
public static void main(String[] args) {
DateFormat df1 = null;
DateFormat df2 = null;
df1 = DateFormat.getDateInstance();
df2 = DateFormat.getDateTimeInstance();
System.out.println("DATE:" + df1.format(new Date()));
System.out.println("DATETIME:" + df2.format(new Date()));
}
}
运行结果:
DATE:2020-11-23
DATETIME:2020-11-23 15:12:17
SimpleDateFormat
在Oracle之中存在了TO_CHAR()函数(最终的数据是字符串),可以将一个日期型的数据进行格式化的操作显示,而在Java之中也可以通过java.text.SimpleDateFormat类完成TO_CHAR()函数的功能和TO_DATE()函数的功能。
但是考虑到实际问题,对于SimpleDateFormat类并不太需要关心它的继承结构了,只关心三个方法:
· 构造方法:public SimpleDateFormat(String pattern);
· 将日期格式化为字符串:public final String format(Date date);
· 将字符串格式化为日期:public Date parse(String source) throws ParseException; 但是除了以上的三个核心操作方法之外,如果要想正常的完成格式化的操作,还需要准备出一些标记:年(yyyy)、月(MM)、日(dd)、时(HH)、分(mm)、秒(ss)、毫秒(SSS)。
范例:将日期变为字符串,格式化显示
package cn.mldn.demo;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDemo {
public static void main(String[] args) throws Exception {
Date date = new Date(); // 当前日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); String str = sdf.format(date); // 将日期格式化为字符串
System.out.println(str);
}
}
范例:
将字符串格式化为日期
package cn.mldn.demo;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDemo {
public static void main(String[] args) throws Exception {
String str = "2020-09-19 12:12:12.122";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date = sdf.parse(str); // 将字符串变为日期
System.out.println(date);
} }
提示:完成了以上的代码之后,实际上对于数据表和简单Java类的映射就应该彻底完成了,数据库之中的日期时间可以通过java.util.Date进行表示。
而且此时发现字符串可以向基本数据类型(包装类)、日期类型(SimpleDateFormat)进行转换,反过来,基本数据类型(String.valueOf())和日期类型(SimpleDateFormat)也可以向字符串进行转换。