J2SE I:Java日期操作类有哪些

2020-11-23  本文已影响0人  Help_II

一.日期操作类

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

上一篇下一篇

猜你喜欢

热点阅读