java日期处理专题:java 日期格式化

1.如何拿到时间后格式化成我们自己想要的日期格式:
处理时候是从数据库中拿出的日期:Date d = rs.getDate("pdate");
首先常用的包:java.lang java.util java.sql
在java.sql包下面有 类,类中的Date查找,里面的方法都已经过时,
java.lang.Object
继承者 java.util.Date
继承者 java.sql.Date
找父类,看有没有可用的方法java.util.Date
也是已经过时的,但是Calendar.get是可以用的,暂时我们不用...
在java api中用索引查找
DateFormat,SimpleDateFormat,他们在java.text包中
在代码中:

Date d = rs.getDate("pdate");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
System.out.println(sdf.format(d));```

2.有了日期后,如何只拿月或者年或者日
java.util下的Calendar
获得一个实例:
Calendar rightNow = Calendar.getInstance();

想用getMonth方法,要有Calendar对象,但是rightNow是系统的当前时间,
我们的日期是从数据库里得到的。怎么办?
 void setTime(Date date) 
          使用给定的 Date 设置此 Calendar 的时间。 

Date d = rs.getDate("pdate");
Calendar c = Calendar.getInstance();
c.setTime(d);
System.out.println(c.get(Calendar.MONTH));```
总结下:分析问题就是,你得到的是Date类型的,api给你的是Calendar类型的才能用的方法,你得想办法转换

3.继续SimpleDateFormat

Date d = rs.getDate("pdate");
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.println(sdf.format(d));```
打印出数据库中日期的时间,分,秒。但是为啥打印出来是:
00:00:00
因为date类型没有存时间的值,只有日期的值(年,月,日)
那话说回来,到底用哪种类型去表示出完整的时间呢(年,月,日,时分秒)然后如何格式化?

4.从数据库中拿到时间,如何显示出完整的时间信息(年月日时分秒)
Date d = rs.getDate("pdate");
你用getDate把数据库中存放的时间以Date类型拿出来的,java.sql.Date类型只包含日期,没有时间。java.sql.Time,有时间的。
java.util下的类Date 下有三个子类 Date,Time,Timestamp
java.sql下的ResultSet有返回Timestamp的方法
第一种方法:
rs.getTime("pdate")(时间拿到了)
第二种方法:很常用时间戳,Timestamp
java.sql ResultSet中有时间戳的方法返回

Timestamp ts = rs.getTimestamp("pdate");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(ts));```
Timestamp 是java.util.date的子类,子类的化也可以用simpledateformat类format下

你可能感兴趣的:(java日期处理专题:java 日期格式化)