您的位置:首页 > 编程语言 > Java开发

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

2017-04-15 17:43 399 查看
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下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: