<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 閱讀(7357) 評論(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年前的文章,今天來讀一讀
    主站蜘蛛池模板: 91九色精品国产免费| 亚洲第一区精品日韩在线播放| 亚洲人成综合网站7777香蕉| 免费无码不卡视频在线观看| 一级中文字幕乱码免费| 亚洲最大视频网站| 亚洲精品国产精品乱码不卡| 亚洲精品视频在线免费| 看免费毛片天天看| 久久久久亚洲Av无码专| 国产一区二区三区在线观看免费 | 亚洲午夜电影一区二区三区| 四只虎免费永久观看| 久久国产精品免费网站| 精品国产亚洲一区二区三区在线观看| 久久青草亚洲AV无码麻豆| 国产男女猛烈无遮挡免费视频| 国产精成人品日日拍夜夜免费| 美女18一级毛片免费看| 亚洲成a人片在线观看中文app| 四虎国产精品免费视| 91短视频在线免费观看| 亚洲AV无码片一区二区三区| 亚洲AV无码国产精品色午友在线 | 亚洲人成影院在线无码观看| 精品无码国产污污污免费网站国产| 亚洲成a人片在线观看无码专区| 久草视频免费在线| 美女羞羞视频免费网站| 亚洲韩国—中文字幕| 日本19禁啪啪无遮挡免费动图| 两个人www免费高清视频| 91嫩草私人成人亚洲影院| 免费91麻豆精品国产自产在线观看 | 免费看a级黄色片| 日韩精品视频在线观看免费| 亚洲av最新在线网址| 免费无码又爽又刺激聊天APP| 真人无码作爱免费视频| 久久亚洲熟女cc98cm| 亚洲人成无码久久电影网站|