JAVA java.util.Date 和 java.text.SimpleDateFormat

java.util.Date

表示日期和时间,精确到毫秒。

计算机中用一个long表示时间,从1970年1月1日00:00:00.0开始每过一毫秒这个long值加1。

Date有一个子类也叫Date,在java.sql包中,注意在用日期时一定要用 java.util.Date类,java.sql的不用,以后会报错

常用构造方法

  • Date():创建当前日期的日期对象

  • Date(long):创建long表示的时间,整数代表1970年之后的时间,负数是之前的时间

例子:

Date date=new Date();

常用方法

  • equal():判断两个日期是否相同

  • getTime():返回日期对象的毫秒数,即:当前时间 距离 1970年1月1日的毫秒

例子:

Date date=new Date();
int year=date.getTime()/1000/60/60/24/365;

System.out.println(year);

当前时间 距离 1970年的 年数

java.text.SimpleDateFormat

用于格式化日期

常用构造方法

SimpleDateFormat(String):String表示的是具体的格式

常用方法

format(Date):将一个Date对象格式化成一个字符串
parse(String):将固定格式的String转化成一个Date对象

日期、时间的代表符号

  • yyyy 四位年
  • yy 两位年
  • MM 月份 始终两位
  • M 月份
  • dd 始终两位日期
  • d 日期
  • HH 24小时制 始终两位
  • H 24小时制
  • hh 12小时制 始终两位
  • h 12小时制
  • mm 分钟 始终两位
  • ss 秒 始终两位
  • SSS:毫秒

例子

格式日期

Date d1 = new Date();
System.out.println(d1);
Date d2 = new Date(0);
System.out.println(d2);

DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String d1Str = sdf.format(d1);
System.out.println(d1Str);

DateFormat sdf_yyyyMMddHHmmss = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf_yyyyMMddHHmmss.format(d1));

DateFormat sdf_yyyyMMddhhmmss = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
System.out.println(sdf_yyyyMMddhhmmss.format(d1));

将字符串日期转化成Date对象

String dateStr = "1990/10/1 10:10:10";
DateFormat sdf_yyyyMMddHHmmss = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = sdf_yyyyMMddHHmmss.parse(dateStr);
System.out.println(date);

原文出处:/show_1EF4rzSwG8ST.html