JAVA 日期处理

来源:互联网 发布:淘宝如何提升信誉度 编辑:程序博客网 时间:2024/05/18 02:26

一、输出任意格式的日期

 

//连接数据库MYSQL

 

Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConn();

 

//创建一条语句

 

Statement stmt = conn.createStatement();

 

// 执行一条语句,并将数据库表(artcile)中的表示日期的字段pdate取出来

 

ResultSet rs = stmt.createQuery("select pdate from article");

 

 

在Java2SE中,有两个Date,一个是java.util.Date, 另一个是java.sql.Date, java.sql.Date是java.util.Date的子类。

对java.util.Date进行操作:

 

Date date = rs.getDate("pdate");   //将pdate保存为日期型

SimpleDateFormat fdate = new SimpleDateFormat("yyyy年MM月dd日");

System.out.println(fdate.format(date));     //打印出你想得到的日期格式

 

 

注意:  如果

思维切入点:因为只得到年份,所以很希望有一种方法,例如:getyear() or getMonth() or getDate()方法,但是我们一查API文档就会发现:你所希望的这些方法都已经废弃了。

这些方法都不能用了,这时的你会不会一脸苦恼呢? 不要苦恼,你若在细心一点的话就会柳暗花明了:replaced byCalendar.get(Calendar.MONTH)。说明你希望了的哪些方法虽然不能用了,但是API还是提供了能够代替他的类Calendar,类Calendar在java.util包中,通过读API文档,Calendar是一个抽象类,创建一个Calendar类对想就不能使用new操作符了,在API中提供了创建一个Calendar类对象的例子:

 

Calendar c = Calendar.getInstance();

 

这时你如果直接执行:c.get(Calendar.MONTH); 得出的结果就是当前系统时间的月份。

你如何将数据库表中的日期设置到Calendar类中,只是就需要我们继续认真读API文档了,你会发现setTime(Date d)方法。

 

所以:你必须执行c.setTime(date); 将表中的日期设置到Calendar中。

 

代码示例:

 Date date = rs.getDate("pdate");

 Calendar c = Calendar.getInstance();

c.setTime(date);

System.out.println(c.get(Calendar.MONTH);   // 输出表中日期中的相应月份 。年份和几号同理。

 

 

 

二、只输出pdate中的年份(或月份或几号)

 

 

 

SimpleDateFormat fdate = new SimpleDateFormat("HH:mm:ss");

System.out.println(fdate.format(date));

 

则输出的结果:

00:00:00

00:00:00

00:00:00   //假设article表就只有3条记录,所以就输出3条记录

 

思考:为什么会出现这个结果呢:

这是因为从数据库中拿出的pdate把它保存为日期型,所以在pdate里没有时间型的记录。

 

 

 

三、将字符串转换成日期型

 

 

Sting str = "2010-1-2 08:08:08.0”;

Timestamp tStamp = Timestamp.valueOf(str);

System.out.println(tStamp);  //输出2010-1-2 08:08:08.0 

原创粉丝点击