java.sql.Date/ java.util.Date/ java.util.Calendar 用法与区别

 

 

  在 JDK API  这样解释," 在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃。"

 

1、java.util.Date   普通类, 表示的是特定的,瞬间的,能精确毫秒。

 1   Date today = new Date();     //获取当前系统时间
 2       System.out.println(today);
 3       
 4       //定义日期输出格式
 5       SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
 6       
 7       //将当前日期转换成指定日期格式输出
 8       String day =sdf.format(today);
 9       System.out.println(day);
11       
12       //指定时间
13       String today1 ="2016年7月13日 10:58:54";
14       15       //将指定时间转换成日期格式输出
16       Date date=sdf.parse(today1);
17       System.out.println(date);

 

 1         Date date = new Date();
 2         System.out.println("毫秒:"+date.getTime());//输入毫秒
 3  
 4         //时间转字符串
 5         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 6         String time = sdf.format(date);
 7         System.out.println("时间转字符串:"+time);
 8  
 9         //利用字符串来转时间格式
10         String time02 = "2018-09-05";
11         SimpleDateFormat  sdf2 = new SimpleDateFormat ("yyyy-MM-dd");
12         Date date2 = sdf2.parse(time02);

 

2、java.sql.Date

  一个包装了毫秒值的瘦包装器 (thin wrapper),它允许 JDBC 将毫秒值标识为 SQL DATE 值。为了与 SQL DATE 的定义一致,由 java.sql.Date 实例包装的毫秒值必须通过将小时、分钟、秒和毫秒设置为与该实例相关的特定时区中的零来“规范化”。

  注:毫秒值 表示自 1970 年 1 月 1 日 00:00:00 GMT 以来经过的毫秒数

 

 

java.sql.date与java.util.date区别 

  1. java.sql.Date 为 java.util.Date 的一个子类,继承了 java.util.Date 中的方法,只不过两者的 tostring() 不同, java.sql.Date 对 tostring() 进行了重写 。                                           ( java.util.Date把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 输出,而 java.sql.Date 则格式化日期转义形式 yyyy-mm-dd 的日期。)

  2. sql.Date 对应数据库中的 Date 类型,而父类 util.Date 为 Java 里的对象类型。

 

3、java.util.Calendar:抽象类,相比 Date 它在操作日历的时候提供了一些方法来操作日历字段。

 1         //日历类的使用
 2  
 3       Calendar c =Calendar.getInstance();
 4       int year =c.get(Calendar.YEAR);
 5       int month=c.get(Calendar.MONTH)+1;//从0月开始,需要加一
 6       int day1 = c.get(Calendar.DAY_OF_MONTH);
 7       int hour =c.get(Calendar.HOUR);
 8       int second = c.get(Calendar.SECOND);
 9       int min =c.get(Calendar.MINUTE);
10       System.out.println("当前时间:"+year+"年"+month+"月"+day1+"日"
11                          +hour+"日"+min+"分"+second+"秒");    

 

Java中的日期和时间处理方法

  • Date类(过时 ,因为不利于国际化,推荐使用Calendar类):
  • Calendar类
  • DateFormat类 使用此类来时间初始
posted @ 2019-05-01 16:27  此NULL非彼空  阅读(513)  评论(0编辑  收藏  举报