一.日期操作类
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-23DATETIME: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)也能够向字符串进行转换。