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

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

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

    Read Sean

    Read me, read Sean.
    posts - 508, comments - 655, trackbacks - 9, articles - 4

    [Jakarta Commons筆記] org.apache.commons.lang.time

    Posted on 2005-08-01 13:19 laogao 閱讀(7358) 評論(11)  編輯  收藏 所屬分類: On Java

     

    好了,來看我在Common Lang中最后要講的一個包:org.apache.commons.lang.time。這個包里面包含了如下5個類:

     

    DateFormatUtils – 提供格式化日期和時間的功能及相關常量;

    DateUtils – CalendarDate的基礎上提供更方便的訪問;

    DurationFormatUtils – 提供格式化時間跨度的功能及相關常量;

    FastDateFormat – java.text.SimpleDateFormat提供一個的線程安全的替代類;

    StopWatch – 是一個方便的計時器。

     

    我們還是在一個例子中來看上述各個類的用法吧:

     

    package sean.study.jakarta.commons.lang;

     

    import java.util.Calendar;

    import java.util.Date;

     

    import org.apache.commons.lang.StringUtils;

    import org.apache.commons.lang.time.DateFormatUtils;

    import org.apache.commons.lang.time.DateUtils;

    import org.apache.commons.lang.time.FastDateFormat;

    import org.apache.commons.lang.time.StopWatch;

     

    public class DateTimeUsage {

     

        public static void main(String[] args) {

            demoDateUtils();

            demoStopWatch();

        }

       

        public static void demoDateUtils() {

            System.out.println(StringUtils.center(" demoDateUtils ", 30, "="));

            Date date = new Date();

            String isoDateTime = DateFormatUtils.ISO_DATETIME_FORMAT.format(date);

            String isoTime = DateFormatUtils.ISO_TIME_NO_T_FORMAT.format(date);

            FastDateFormat fdf = FastDateFormat.getInstance("yyyy-MM");

            String customDateTime = fdf.format(date);

            System.out.println("ISO_DATETIME_FORMAT: " + isoDateTime);

            System.out.println("ISO_TIME_NO_T_FORMAT: " + isoTime);

            System.out.println("Custom FastDateFormat: " + customDateTime);

            System.out.println("Default format: " + date);

            System.out.println("Round HOUR: " + DateUtils.round(date, Calendar.HOUR));

            System.out.println("Truncate HOUR: " + DateUtils.truncate(date, Calendar.HOUR));

            System.out.println();

        }

       

        public static void demoStopWatch() {

            System.out.println(StringUtils.center(" demoStopWatch ", 30, "="));

            StopWatch sw = new StopWatch();

            sw.start();

            operationA();

            sw.stop();

            System.out.println("operationA used " + sw.getTime() + " milliseconds.");

            System.out.println();

        }

       

        public static void operationA() {

            try {

                Thread.sleep(999);

            }

            catch (InterruptedException e) {

                // do nothing

            }

        }

     

    }

     

    以下是運行結果:

     

    ======= demoDateUtils ========

    ISO_DATETIME_FORMAT: 2005-08-01T12:41:51

    ISO_TIME_NO_T_FORMAT: 12:41:51

    Custom FastDateFormat: 2005-08

    Default format: Mon Aug 01 12:41:51 CST 2005

    Round HOUR: Mon Aug 01 13:00:00 CST 2005

    Truncate HOUR: Mon Aug 01 12:00:00 CST 2005

     

    ======= demoStopWatch ========

    operationA used 1000 milliseconds.

     

    具體的調用細節和完整的API請參閱Commons LangJavadoc

     

     

    Feedback

    # 完啦?  回復  更多評論   

    2005-08-01 13:45 by emu
    你手頭的好東東還真多

    # re: [Jakarta Commons筆記] org.apache.commons.lang.time  回復  更多評論   

    2005-08-01 13:56 by 大胃
    呵呵,其實是我們很多時候根本就沒有留意到這些好東東的存在。

    Jakarta Commons有很多子項目,Common Lang只是其中比較核心的一個。我還在考慮要不要繼續寫其他子項目:BeanUtils、Collections、Digester、Configuration、HttpClient、Codec、CLI、Logging...... 都是我們日常需要的,就怕寫不完哦。

    # re: [Jakarta Commons筆記] org.apache.commons.lang.time  回復  更多評論   

    2005-08-02 17:01 by javaer
    支持LZ。不知道這些Common類庫跟JDK5.0重復的有多少呢?

    # re: [Jakarta Commons筆記] org.apache.commons.lang.time  回復  更多評論   

    2005-08-02 17:49 by 大胃
    就我的感覺而言,重復的只是很少一部分。在J2SE 5.0下面,這些庫依然很有用。

    另一方面,現在除非是全新的完全自主開發的項目,我都不建議將代碼兼容等級提高到1.5.0。

    # re: [Jakarta Commons筆記] org.apache.commons.lang.time  回復  更多評論   

    2006-03-09 15:22 by THEMAX
    不知道有沒有計算日期間隔的?比如說2個日期相差多少個月,相差多少天等.

    # re: [Jakarta Commons筆記] org.apache.commons.lang.time  回復  更多評論   

    2006-03-09 16:57 by 大胃
    參考一下
    org.apache.commons.lang.time.DurationFormatUtils

    其中的formatDurationWords也許對你有用。

    # re: [Jakarta Commons筆記] org.apache.commons.lang.time  回復  更多評論   

    2006-03-13 14:39 by THEMAX
    我想知道的是日期的間隔
    例如:

    d1="2006-03-01" d2="2006-05-01"
    我想得出d2和d1相差幾個月,

    # re: [Jakarta Commons筆記] org.apache.commons.lang.time  回復  更多評論   

    2006-03-13 15:25 by 大胃
    我不打算去翻Javadoc抄出一個例子,(也許有,也許沒有,我更傾向于相信沒有)給你一個自己解決的思路吧:

    兩個日期間隔多少天?
    每個Date都能對應出一個long數值,即毫秒數,兩個Date的long相減,能夠得到差值,一天有多少毫秒?很容易算出差多少天的。不過你可能還需要看看兩個Date的具體時間,有可能前一個日期中的時間部分比后一個日期中的時間部分要更早或者更晚,上述方法只告訴你相差的時間折合下來有多少天,至于你需要得到的差額是將兩頭的日子包含在內還是除開兩頭的日子呢?這就需要你根據實際需要來決定了。

    兩個日期間隔多少月?
    依次比較年、月、日,我相信不會很難吧。你說呢?

    綜合考慮,我猜Java自己和Jakarta Commons之所以沒有給出一個很直接的方案,是有原因的。類似的算法最好還是自己實現,如果用API,我覺得不是很好定義如下問題:比如1月31號和2月1號差幾個月?3月1號和4月30號差幾個月?23:59到第二天的00:01相差要算成1天還是0天,再加上時區的問題,就更加復雜。一切還需要你首先明確下來需求才行。

    如果你還是困惑,可以去看看java.util.Calendar、java.util.Date和org.apache.commons.lang.time.DateUtils的文檔。也許你可以考慮Calendar里面的roll方法來做出一個效率不算很高的算法?

    # re: [Jakarta Commons筆記] org.apache.commons.lang.time  回復  更多評論   

    2006-03-13 17:24 by THEMAX
    十分感謝!

    # re: [Jakarta Commons筆記] org.apache.commons.lang.time  回復  更多評論   

    2009-10-04 18:48 by hurry
    你真厲害 !!!!
    我要加油 超越你

    # re: [Jakarta Commons筆記] org.apache.commons.lang.time  回復  更多評論   

    2014-06-05 14:55 by 宇飛
    哈哈,什么情況,10年前的文章,今天來讀一讀
    主站蜘蛛池模板: 黄网站色视频免费观看45分钟| 花蝴蝶免费视频在线观看高清版| 日韩亚洲精品福利| 成在人线av无码免费高潮水 | 久久久久亚洲精品无码蜜桃| 精品久久久久久久久免费影院| 亚洲国产区男人本色| 亚洲综合无码AV一区二区| 精品成在人线AV无码免费看| 看Aⅴ免费毛片手机播放| 久久亚洲中文字幕精品有坂深雪| 免费看www视频| 99在线观看视频免费| 羞羞网站在线免费观看| 亚洲精品自拍视频| 国产精品亚洲mnbav网站| 97人伦色伦成人免费视频 | 亚洲免费视频观看| 欧洲精品码一区二区三区免费看| 91亚洲自偷手机在线观看| 亚洲国产中文v高清在线观看| 中国人xxxxx69免费视频| 国产成人无码免费看片软件 | 国产精品亚洲а∨天堂2021| 亚洲高清视频在线播放| 国产亚洲精品看片在线观看| 日韩精品免费电影| 国产妇乱子伦视频免费| 你懂的网址免费国产| 日韩色视频一区二区三区亚洲| 亚洲午夜电影在线观看高清 | 黄色毛片免费网站| 亚洲一区二区三区国产精华液| 亚洲一本综合久久| 中文字幕精品无码亚洲字| 国产真人无遮挡作爱免费视频 | 亚洲AV无码成人精品区狼人影院| 久久丫精品国产亚洲av| 亚洲人精品午夜射精日韩| 免费在线观看亚洲| 日本一道高清不卡免费|