程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 一些淡忘了的Java日期時間函數

一些淡忘了的Java日期時間函數

編輯:關於JAVA

今天捨友問我,JDBC中的stmt.setDate()怎麼挺入當前時間,傳入參數new java.util.Date()不行, 傳入 參數new java.sql.Date(),試了一會,還是不行。此時,才發覺,自從用了Hibernate,JPA之後, 我連原始的東西都忘記了。這可是一個很可悲的問題,決定來一次小測試!

package test;

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class SQLDate {

    public static void main(String[] args){

        System.out.println(System.currentTimeMillis());         //結果:1244711626453

        java.util.Date date1 = new java.util.Date();
        System.out.println(date1.toString());    //結果: Thu Jun 11 16:27:57 CST 2009

        //java.sql.Date extends java.util.Date
         java.sql.Date date2 = new java.sql.Date(System.currentTimeMillis());
         System.out.println(date2.toString());    //結果: 2009-06-11

         java.sql.Date date3 = new java.sql.Date(date1.getTime());
        System.out.println(date3.toString());    //結果:2009-06-11

        //Timestamp extends java.util.Date
        Timestamp stamp1 = new Timestamp (System.currentTimeMillis());
        System.out.println(stamp1.toString());    //結果: 2009-06-11 16:27:57.75

        Timestamp stamp2 = new Timestamp (date1.getTime());
        System.out.println(stamp2.toString());    //結果: 2009-06-11 16:52:56.171

        //日期時間轉換成格式化的字符串
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        //format(java.util.Date date), Timestamp是java.util.Date的子類
        String timeStr =  sdf.format(stamp1);   
        System.out.println(timeStr);    //結果:2009/06/11 16:52:56

        //SimpleDateFormat extends DateFormat, DateFormat是抽象類
        DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        String timeStr2 = df.format(date1);
        String timeStr3 = df.format(date2);
        System.out.println(timeStr2);    //結果: 2009/06/11 16:52:56
        System.out.println(timeStr3);    //結果: 2009/06/11 16:52:56

        //字符串轉化為日期時間
        try {
            //parse()中的參數必須與sdf中定義的格式一致,否則拋異常
             java.util.Date date6 = sdf.parse("2009/12/10 5:12:02");
            System.out.println(date6.toString()); //結果: Thu Dec 10 05:12:02 CST 2009

             java.sql.Date date7 = new java.sql.Date(date6.getTime());
             System.out.println(date7.toString()); //結果: 2009-12-10

            //注意: sdf.parse()返回值是java.util.Date類型,不能轉化成java.sql.Date類型
             //java.sql.Date date8 = (java.sql.Date)sdf.parse("2009/12/10 5:12:02"); //不可行

            Timestamp stamp9 = new Timestamp(date7.getTime());
             System.out.println(stamp9.toString()); //結果: 2009-12-10 05:12:02.0
         } catch (ParseException e) {
            e.printStackTrace();
        }

    }
}

這樣測試一下,那幾個常用日期時間類和字符串與日期時間類的轉換的用法,也就一目了然了。貼到 博客上,下次再遺忘時,打開來看看,也就立即記起來了!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved