<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-200  評論-148  文章-15  trackbacks-0

    將Date類型寫入數(shù)據(jù)庫的兩種方法
    先了解幾個類:
    1、具體類(和抽象類相對)java.util.Date?
    2、抽象類java.text.DateFormat 和它的一個具體子類,java.text.SimpleDateFormat?
    3、抽象類java.util.Calendar 和它的一個具體子類,java.util.GregorianCalendar?
    具體類可以被實(shí)例化, 但是抽象類卻不能. 你首先必須實(shí)現(xiàn)抽象類的一個具體子類.

    ************************************
    一種將java的日期類型直接轉(zhuǎn)換為SQL的日期類型的方法,比較簡單但適用性狹窄,
    注意一下例子在jdk下編譯沒有時(shí)間,但在jb和Eclipse下就有時(shí)間,不知怎么回事

    ——————————————
    public class a {

    public static void main(String[] args) {
    ?
    ? java.util.Date now = new Date();
    ? //PreparedStatement類型的setDate方法只接受sql.date類型,所有必須先轉(zhuǎn)換
    ? java.sql.Date sqlnow = new java.sql.Date(now.getTime());
    ?? try {
    ??? //froName必須放在try中,否則編譯不通過,可能froName方法拋出編譯時(shí)異常了
    ??? //經(jīng)查閱 public static Class forName(String className) throws???? ClassNotFoundException {...}
    ??? Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    ??? Connection connection = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.0.2:1433;DatabaseName=pubs","sa","");
    ??? PreparedStatement ps=connection.prepareStatement("update test set f1=?");
    ??? ps.setDate(1,sqlnow);
    ??? int i = ps.executeUpdate();
    ?? }
    ??? catch (Exception ex) {}

    ?}
    }
    **********************************************************
    另一種是將java的date類型通過SimpleDateFormat轉(zhuǎn)換為字符串,再寫到sql語句中
    -----------------------------------------------------------
    import java.sql.*;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class a{
    ? public static void main(String[] args) {
    ? //之所以用kk而不用hh是因?yàn)閗k是24進(jìn)制的而不雖操作系統(tǒng)設(shè)置變動
    ? SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
    ? Date now = new Date();
    ? //format()方法的返回值是String型
    ? System.out.println(sdf.format(date));
    ?}}

    -----------------------------------------------------
    一下是逆操作,將String轉(zhuǎn)換為Date,parse()方法能拋出ParseException異常,所以你必須使用適當(dāng)?shù)漠惓L幚砑夹g(shù)
    try{
    ??? SimpleDateFormat sbf =new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
    ??? String sdate="2004-05-14 21:29:51";
    ??? Date ddate = sbf.parse(sdate);
    ??? System.out.println(ddate);
    ??? }
    catch (Exception ex) { }
    **************************************************************
    以下是副產(chǎn)品,我們用到的情況比較少
    util.date類型
    ----------------------------------------------
    ?? //1年前日期
    ?? java.util.Date myDate=new java.util.Date();?
    ?? long myTime=(myDate.getTime()/1000)-60*60*24*365;
    ?? myDate.setTime(myTime*1000);
    ?? //明天日期
    ?? myDate=new java.util.Date();
    ?? myTime=(myDate.getTime()/1000)+60*60*24;
    ?? myDate.setTime(myTime*1000);
    ? //兩個時(shí)間之間的天數(shù)
    ?? SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
    ?? java.util.Date date= myFormatter.parse("2003-05-1");
    ?? java.util.Date mydate= myFormatter.parse("1899-12-30");
    ?? long? day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
    ?? //加半小時(shí)
    ?? SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    ?? java.util.Date date1 = format.parse("2002-02-28 23:16:00");
    ?? long Time=(date1.getTime()/1000)+60*30;
    ?? date1.setTime(Time*1000);
    ?? String mydate1=formatter.format(date1);
    ?? //年月周求日期
    ?? SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM F E");
    ?? java.util.Date date2= formatter2.parse("2003-05 5 星期五");
    ?? SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd");
    ?? String mydate2=formatter3.format(date2);
    ?? //求是星期幾
    ?? mydate= myFormatter.parse("2001-1-1");
    ?? SimpleDateFormat formatter4 = new SimpleDateFormat("E");
    ?? String mydate3=formatter4.format(mydate);
    -----------------------------------------------
    ?now.getYear();//實(shí)際年份減去1900,如果構(gòu)造函數(shù)為Date(2008,2,25)則不減1900,如果構(gòu)造函數(shù)為Date(17009456745)或者setTime(17009456745)還減1900
    ?now.getMonth();//實(shí)際月份減去1,如果構(gòu)造函數(shù)為Date(2008,2,25)則不減1,如果構(gòu)造函數(shù)為Date(17009456745)或者setTime(17009456745)還減1900
    ?now.getDay();//*,原來是取星期,不知sun公司是咋想的,腦袋進(jìn)水了。
    ?now.getDate();//這才是取1~31之間的日
    ?now.getHours();//24進(jìn)制的小時(shí)
    ?now.getMinutes();//分
    ?now.getSeconds();//秒
    ?now.getTime();//返回1970年1月1日00:00:00起至今的毫秒數(shù)
    ?now.setTime(long time);//真實(shí)日期為1970年1月1日午夜+time毫秒

    *************************************
    日歷類型的子類GregorianCalendar類型
    構(gòu)造函數(shù)GregorianCalendar(int year, int month, int date) ,無參數(shù)為但前時(shí)間
    注意月份的表示,一月是0,二月是1,以此類推。因此最好使用單詞而不是使用數(shù)字來表示月份。父類Calendar使用常量來表示月份:JANUARY, FEBRUARY...
    所以1903年12月17日可以寫為
    GregorianCalendar aaa = new GregorianCalendar(1903, Calendar.DECEMBER, 17)
    GregorianCalendar aaa = new GregorianCalendar(1903, 11, 17);
    ---------------------------------------
    import java.util.Date;
    import java.text.DateFormat;
    import java.util.GregorianCalendar;
    public class a {
    public static void main(String[] args) {
    ? DateFormat df =? DateFormat.getDateInstance(DateFormat.FULL);
    ? GregorianCalendar gca = new GregorianCalendar();
    ? //getTime()方法是將GregorianCalendar對象轉(zhuǎn)換為Date對象
    ? gca.setTime(new Date());
    ? System.out.println("系統(tǒng)時(shí)間: " +df.format(gca.getTime()));
    ? //set 方法能夠讓我們通過簡單的設(shè)置星期中的哪一天這個域來將我們的時(shí)間調(diào)整為星期五.注意到這里我們使用了常量 DAY_OF_WEEK 和 FRIDAY來增強(qiáng)代碼的可讀性.
    ? //如果當(dāng)前為星期五時(shí)間不變
    ? gca.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY);
    ? System.out.println("下一個星期五: " +? df.format(gca.getTime()));
    ? //add 方法讓我們能夠在日期上加上數(shù)值.
    ? gca.add(GregorianCalendar.DAY_OF_MONTH, 8);
    ? System.out.println("再加8天: " +? df.format(gca.getTime()));
    ? //get方法取對象中的一部分
    ? int i =? gca.get(GregorianCalendar.DAY_OF_MONTH);
    ? System.out.println(i);
    }}



    ***************************************
    Locale類:(java.util.Locale)
    -----------------------------------
    import java.util.Locale;
    public class a {
    ?public static void main(String[] args) {
    ? Locale localeEN = new Locale("en", "US");
    ? //另一實(shí)例化方法=locale.ENGLISH;
    ? System.out.println("Display Name: " +localeEN.getDisplayName());
    ? System.out.println("Country: " + localeEN.getCountry());
    ? System.out.println("Language: " + localeEN.getLanguage());

    ? Locale localeFR = new Locale("fr", "FR");
    ? System.out.println("\nDisplay Name: " +localeFR.getDisplayName());
    ? System.out.println("Country: " + localeFR.getCountry());
    ? System.out.println("Language: " + localeFR.getLanguage());

    ? // 用三種語言顯示本機(jī)語言、英語、法語
    ? System.out.println("用本語顯示DisplayName: "+ localeEN.getDisplayName());
    ? System.out.println("用英語顯示DisplayName:"+?? localeEN.getDisplayName(localeEN ));
    ? System.out.println("用法語顯示DisplayName:"+?? localeEN.getDisplayName(localeFR ));
    ?}
    }
    *****************************************************

    把Date以不同地域的格式顯示:java.text.DateFormat
    getDateTimeInstance()的前兩個參數(shù)分別代表日期風(fēng)格和時(shí)間風(fēng)格,取值為SHORT, MEDIUM, LONG, 和 FULL
    getDateInstance()方法:Java還提供了幾個選擇日期格式,你可以通過使用重載的getDateInstance(int style)獲得。出于方便的原因,DateFormat提供了幾種預(yù)置的常量,你可以使用這些常量參數(shù)SHORT, MEDIUM, LONG, 和FULL
    -----------------------------------------------
    import java.util.Locale;
    import java.text.DateFormat;
    import java.util.Date;
    public class a {
    ? public static void main(String[] args) {????
    ??? Date now=new Date();
    ??? Locale localeCN=Locale.CHINA;
    ??? DateFormat df=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,localeCN);
    ??? System.out.println(df.format(now));
    ?? //結(jié)果為2004年5月17日 星期一 下午16時(shí)38分32秒 CST?
    }}
    ******************************************************
    時(shí)區(qū) java.util.TimeZone
    --------------------------------------------------------
    import java.util.TimeZone;
    public class a {
    ? public static void main(String[] args) {
    ? // 系統(tǒng)時(shí)區(qū)
    ? TimeZone timeZoneFL = TimeZone.getDefault();
    ? System.out.println("\n" + timeZoneFL.getDisplayName());
    ? System.out.println("與GMT相差的微秒數(shù): " + timeZoneFL.getRawOffset());
    ? System.out.println("Uses daylight saving: " + timeZoneFL.useDaylightTime());
    ? //通過“時(shí)區(qū)字符串ID”指定時(shí)區(qū)
    ? TimeZone timeZoneLondon = TimeZone.getTimeZone("Europe/London");
    ? System.out.println("\n" + timeZoneLondon.getDisplayName());
    ? System.out.println("與GMT相差的微秒數(shù): " + timeZoneLondon.getRawOffset());
    ? System.out.println("采用夏令時(shí): " + timeZoneLondon.useDaylightTime());
    ? }}
    -------------------------------------------------------
    顯示結(jié)果:
    中國標(biāo)準(zhǔn)時(shí)間
    與GMT相差的微秒數(shù):
    Uses daylight saving:false;

    格林威治時(shí)間
    與GMT相差的微秒數(shù):
    采用夏令時(shí): true

    ********************************************************
    顯示不同時(shí)區(qū)的時(shí)間? df.setTimeZone(TimeZone kkk)
    ----------------------------------------------------
    public class a {
    ? public static void main(String[] args) {

    ??? Date now=new Date();
    ??? DateFormat df=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
    ??? TimeZone timezoneCH=TimeZone.getTimeZone("China/BeiJing");
    ??? df.setTimeZone(timezoneCH);
    ??? System.out.println("北京時(shí)間"+df.format(now));
    ??? TimeZone timezoneFR=TimeZone.getTimeZone("Europe/Paris");
    ??? df.setTimeZone(timezoneFR);
    ??? System.out.println("巴黎時(shí)間"+df.format(now));???
    ? }}
    -----------------------------------------------------
    結(jié)果如下:
    北京時(shí)間2004年5月17日 星期一 上午09時(shí)31分34秒 GMT
    巴黎時(shí)間2004年5月17日 星期一 上午11時(shí)31分34秒 CEST
    *******************************************************

    posted on 2006-07-27 08:29 無聲 閱讀(8165) 評論(0)  編輯  收藏 所屬分類: 職場生活
    主站蜘蛛池模板: 亚洲午夜在线一区| 国产福利免费视频 | 亚洲AV无码AV日韩AV网站| 国产亚洲精品免费| 国产成人精品一区二区三区免费| 亚洲日本国产乱码va在线观看| 亚洲男人天堂影院| 国产一级淫片免费播放电影| 大妹子影视剧在线观看全集免费| 久久精品国产亚洲av麻豆蜜芽 | 成人免费一级毛片在线播放视频| 337p日本欧洲亚洲大胆色噜噜 | 永久免费无码网站在线观看| 亚洲日本久久久午夜精品| 亚洲性在线看高清h片| 国产在线观看免费观看不卡| 中文字字幕在线高清免费电影| 亚洲AV成人一区二区三区在线看| 亚洲欭美日韩颜射在线二| 天天摸夜夜摸成人免费视频| 国产好大好硬好爽免费不卡| 看成年女人免费午夜视频| 亚洲精品一卡2卡3卡三卡四卡| 亚洲精品NV久久久久久久久久| 一级午夜免费视频| 亚洲中文字幕一二三四区| 国产亚洲一区二区三区在线| 99精品视频在线观看免费播放| 亚洲AV日韩综合一区| 亚洲国产美女精品久久| 久久亚洲高清观看| 免费大片在线观看网站| 青春禁区视频在线观看直播免费| 免费精品99久久国产综合精品| 午夜在线免费视频 | 免费女人高潮流视频在线观看 | 国产区在线免费观看| 精品国产日韩亚洲一区91| 亚洲一级毛片在线观| 亚洲国产香蕉碰碰人人| 亚洲女久久久噜噜噜熟女|