乐趣区

关于java:J2SE-IJava日期操作类有哪些

一. 日期操作类

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)也能够向字符串进行转换。

退出移动版