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

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

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

    kapok

    垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      455 隨筆 :: 0 文章 :: 76 評論 :: 0 Trackbacks
    記事貼4:Java中的日期處理真是爛!
    2005年 02月01日
    Java中Date不好用,建議使用那個名字長的有點變態(tài)的什么Calendar類! 

    我想得到當(dāng)前日期,然后將當(dāng)前日期加上某一個整數(shù),得到下一個日期,我今天在測試過程中發(fā)現(xiàn)Date類不好用,今天是2005-01-14,我想得到前28天的日期,我寫了個方法:
     

    //傳入一個int的時間,經(jīng)和當(dāng)前日期相加或者相減,得到一個新日期
    // public static String strToDateByInt(int i, String operator) {
    //  long j = 0;
    //  long tmp;
    //
    //  Date d = new Date();
    //  
    //  tmp = (long)(d.getTime()/24 * 3600 * 1000);
    //  
    //  if ("-".equals(operator)) {
    //   j = d.getTime() -  i * 24 * 3600 * 1000;
    //   
    //  } else if ("+".equals(operator)) {
    //   j = d.getTime() +  i * 24 * 3600 * 1000;
    //  }
    //  Date a = new Date(j);
    //
    //  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    //
    //  //  System.out.println(sdf.format(a));
    //  return sdf.format(a);
    //
    // }

    結(jié)果當(dāng)我調(diào)用這個方法時候,得到的結(jié)果竟然是2005-02-07,而這個數(shù)值在25-51之間時結(jié)果就不對(感謝認(rèn)真的測試人員!)。

    不得已,我查了些資料,將方法改寫如下:
     public static String strToDateByInt(int i, String operator) {
      long j = 0;

      Date d = new Date();
      
    //  System.out.println("Y=" + d.getYear() + 1900);
    //  System.out.println("M=" + d.getMonth());
    //  System.out.println("Day=" + d.getDay());
    //  System.out.println("Date=" + d.getDate());
      
      GregorianCalendar gc = new GregorianCalendar();
      gc.setTime(d);
      
      System.out.println(d.getTime());
      
      if ("+".equals(operator)) {
       gc.add(GregorianCalendar.DATE, i);
       
      } else if ("-".equals(operator)) {
       gc.add(GregorianCalendar.DATE, (-i));
      }
      
      Date a = gc.getTime();
      
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      
      return sdf.format(a);

     }

    然后就可以了,其實這樣解決也可以,但是讓我討厭的是這么長的類名,感覺有些變態(tài)!
    而且上面的注釋掉的代碼//  System.out.println("Day=" + d.getDay()); 打印出來并不是日期中的天,而是星期幾!!!!!!!!!!!

    感覺Java開發(fā)真是挺費勁的,而且隨著演化,好像越來越復(fù)雜,今天的輸入法不好用,就寫到這里了!!!

    ltf_ty 于16 : 37 發(fā)表 已被瀏覽66次 評論(2) / 引用(0) 加入博采中心
         注意int與long所能表達(dá)的數(shù)值范圍 [回復(fù)]
       

    結(jié)果當(dāng)我調(diào)用這個方法時候,得到的結(jié)果竟然是2005-02-07,而這個數(shù)值在25-51之間時結(jié)果就不對(感謝認(rèn)真的測試人員!)。
    ————————————————————————
    j = d.getTime() -  (long) i * 24 * 3600 * 1000;
    對j進(jìn)行加減操作時,要注意把i * 24 * 3600 * 1000強(qiáng)制轉(zhuǎn)化為long,這樣就不會出現(xiàn)這個問題了

        zcjl | 2005年 02月28日 17 : 22


         看來是我錯了?:< [回復(fù)]
       

    是我錯了?
    謝謝樓上的朋友!

        兔八哥 | 2005年 02月28日 17 : 44
    posted on 2005-03-09 00:40 笨笨 閱讀(281) 評論(0)  編輯  收藏 所屬分類: J2EEALL
    主站蜘蛛池模板: 性做久久久久免费观看| 精品一区二区三区免费观看| 亚洲熟妇AV乱码在线观看| 亚洲国产成人精品青青草原| 亚洲精品韩国美女在线| 亚洲欧洲另类春色校园小说| 亚洲狠狠ady亚洲精品大秀| 亚洲精品乱码久久久久久下载| 亚洲视频在线免费看| 亚洲明星合成图综合区在线| 亚洲无圣光一区二区| 久久精品国产99国产精品亚洲| 最新国产精品亚洲| 亚洲精品宾馆在线精品酒店| 大桥未久亚洲无av码在线 | 又色又污又黄无遮挡的免费视| 国产免费无遮挡精品视频| 亚洲AV无码乱码在线观看性色扶 | 8x8×在线永久免费视频| 最近中文字幕高清免费中文字幕mv | 国内精品久久久久影院亚洲| 亚洲欧美第一成人网站7777| 国产亚洲视频在线观看网址| 一级一黄在线观看视频免费| 国产精品免费无遮挡无码永久视频 | 亚洲AV无码一区二区三区鸳鸯影院| 黄网站色视频免费看无下截| 一区二区三区免费视频网站| a毛看片免费观看视频| 亚洲高清免费在线观看| 德国女人一级毛片免费| 亚洲精品线路一在线观看| 亚洲精品~无码抽插| 亚洲熟妇无码爱v在线观看| 亚洲日韩中文字幕一区| 无码免费又爽又高潮喷水的视频| 久久久久久AV无码免费网站下载 | 日本一道本不卡免费| 69成人免费视频| 婷婷亚洲天堂影院| 亚洲av不卡一区二区三区|