时间处理类
util.date
import java.util.Date;
public class TimeTest {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date.getTime());//返回值为从格林威治时间1970年1月1日0时整到现在的总秒数,1605318658375
System.out.println(System.currentTimeMillis());//第二种表示方法
System.out.println("------------");
System.out.println(date);
}
}
util包下得date类可以获取当前系统时间,精确到秒,其中还有重要返回方法getTime,返回值为从格林威治时间1970年1月1日0时整到现在的总秒数,当然返回从格林威治时间1970年1月1日0时整到现在的总秒数还可以用System包下得currentTimeMillis方法。
sql.date
public class TimeTest {
public static void main(String[] args) {
java.sql.Date date1 = new java.sql.Date(1605318658375L);//参数为long类型,返回值到具体天数
}
}
该包下得date类只有有参构造器,参数为从格林威治时间1970年1月1日0时整到现在的总秒数,返回值为当前,精确到天数
- valueOf
public class TimeTest {
public static void main(String[] args) {
java.sql.Date date1 = new java.sql.Date(1605318658375L);//参数为long类型,返回值到具体天数
System.out.println(date1);
System.out.println(date1.valueOf("2020-11-14"));
}
}
sql.date类下的valueOf可以将字符串转为sql.date类型,其中字符串默认格式为“年-月-日”;
util.date与sql.date相互转换
- util.data转sql.date
import java.util.Date;
public class TimeTest {
public static void main(String[] args) {
Date date = new Date();
java.sql.Date date1 = new java.sql.Date(new Date().getTime());//sql.date--->util.date
System.out.println(date1);
}
}
- sql.date转util.date
可以看到sql.date为util.date子类
import java.util.Date;
public class TimeTest {
public static void main(String[] args) {
Date date = new Date();
java.sql.Date date1 = new java.sql.Date(new Date().getTime());//sql.date--->util.date
date = date1;//util.date--->sql.date
System.out.println(date);
}
}
日期格式类
import java.util.Date;
public class TimeTest {
public static void main(String[] args) {
Date date = new Date();
java.sql.Date date1 = new java.sql.Date(1605318658375L);//sql.date--->util.date
java.sql.Date date2 = date1.valueOf("2012-12-12");
java.sql.Date date3 = date1.valueOf("2012/12/12");
System.out.println(date2);
}
}
可以看到我们以“/”分割年月日时,编译器报格式错误异常
当我们需要自定义格式时
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimeTest {
public static void main(String[] args) {
DateFormat df = new SimpleDateFormat("yyyy/MM/dd hh/mm/ss"); //创建DateFormat实现类
try {
Date date = df.parse("2012/12/12 11/12/12");//将字符串类型转Date类型
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(df.format(new Date()));
System.out.println();
}
}
这里有两个重要的得方法:
-
parse
将字符串类型转为Date类型,其中输入字符串格式为自定义格式 -
format
将Date类型转为字符串类型,其中输出得字符串格式为自定义格式