1.System类中的currentTimeMillis()
@Test
public void test1(){
long time = System.currentTimeMillis();
//返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差
//称为时间戳
System.out.println(time);
}
/**
* Java.Util.Date类
* |--- Java.sql.Date类
* 1.两个构造器的使用
* >构造器一 : Date() : 创建一个对应当前时间的Date对象
* >构造器二 : 创建指定毫秒数的Date对象
* 2.两个方法的使用
* > toString() : 显示当前 年,月,日,时,分,秒
* > getTime() : 获取当前Date对象对应的毫秒数 (时间戳)
*
* 3.java.sql.Date 对应着数据库中的日期类型的变量
* > 如何实例化
* > 如何将util.Date对象转换成sql.Date对象
*/
@Test
public void test2(){
//构造器一 : Date() : 创建一个当前的Date对象
Date date1 = new Date();
System.out.println(date1.toString());
System.out.println(date1.getTime()); //1617889893180
//构造器二 : 创建指定毫秒的Date对象
Date date2 = new Date( 1617889893180L );
System.out.println(date2.toString());
//创建java.sql.Date对象
java.sql.Date date3 = new java.sql.Date( 35235323545L );
System.out.println( date3 ); //1971-02-13
//如何将java.util.Date对象转换成java.sql.Date对象
Date date4 = new java.sql.Date( 234324242343L );
java.sql.Date date5 = (java.sql.Date) date4;
System.out.println("-------------------------------");
Date date6 = new Date();
java.sql.Date date7 = new java.sql.Date( date6.getTime() );
System.out.println(date7);
}
jdk 8之前的日期时间的API测试
- System类中currentTimeMillis();
- java.util.Date和子类java.sql.Date
- SimpleDateFormat
- Calendar
SimpleDateFormat的使用:SimpleDateFormat对日期Date类的格式化和解析
1.两个操作:
1.1 格式化:日期 —>字符串
1.2 解析:格式化的逆过程,字符串 —> 日期
2.SimpleDateFormat的实例化
@Test
public void testSimpleDateFormat() throws ParseException {
//实例化SimpleDateFormat : 使用的默认构造器
SimpleDateFormat dfs = new SimpleDateFormat();
//格式化 : 日期 --> 字符串
Date date = new Date();
System.out.println( date );
String format = dfs.format( date );
System.out.println( format );
//解析:格式化的逆过程,字符串 ---> 日期
String str = "21-4-19 上午11:39";
Date parse = dfs.parse( str );
System.out.println(parse);
System.out.println("--------------------------------");
//*************按照指定的方式格式化和解析:调用带参的构造器*****************
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//格式化
String format1 = sdf1.format( date );
System.out.println( format1 );
//解析:要求字符串必须是符合SimpleDateFormat识别的格式(通过构造器参数体现),
//否则,抛异常
Date parse1 = sdf1.parse( "2021-04-09 12:01:52" );
System.out.println( parse1 );
}
java.text.SimpleDateFormat类
Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类。
它允许进行格式化:日期 --> 文本、解析:文本 --> 日期
格式化:
SimpleDateFormat() :默认的模式和语言环境创建对象
public SimpleDateFormat(String pattern):该构造方法可以用参数pattern
指定的格式创建一个对象,该对象调用:
public String format(Date date):方法格式化时间对象date
解析:
public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期。
/**
* 练习 : 将字符串 2021-04-09 转换成 java.sql.Date 形式
*/
@Test
public void testExer() throws ParseException {
String birth = "2021-04-09";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf1.parse( birth );
System.out.println(date);
java.sql.Date birthDate = new java.sql.Date(date.getTime());
System.out.println(birthDate);
}
/**
* Calendar 日历类 (抽象类) 的使用
*/
@Test
public void testCalendar(){
//1.实例化
//方式一 : 创建其子类 (GregorianCalendar) 对象
//方式二 : 调用其静态方法getInstance()
//Calendar gregorianCalendar = new GregorianCalendar();
Calendar calendar = Calendar.getInstance();
//2.常用方法
//get()
int days = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(days);
System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
//set()
//calendar可变性
calendar.set(Calendar.DAY_OF_MONTH,22);
days = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(days);
//add()
calendar.add(Calendar.DAY_OF_MONTH,-3);
days = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(days);
//getTime():日历类---> Date
Date date = calendar.getTime();
System.out.println(date);
//setTime():Date ---> 日历类
Date date1 = new Date();
calendar.setTime(date1);
days = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(days);
}
总结 :常用的旧版时间API
- Date
- SimpleDateFormat
Date方法:
toString()
getTime()
SimpleDateFormat方法:
format()
parse()