心有多大舞臺(tái)便有多大

          Embrace changes, pursue excellence, share niceness.

          27/Feb/2008:10:12:44 +0800這樣的日期格式在java里的解析.

          今天在解析apache usertrack模塊產(chǎn)生的clickstream日志文件時(shí),其中有一個(gè)接收請(qǐng)求的時(shí)間,其格式為:
          27/Feb/2008:10:12:44 +0800
          在用SimpleDateFormat解析時(shí)始終出錯(cuò).后來(lái)的解決辦法:
          SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy:hh:mm:ss Z", Locale.ENGLISH);
          formatter.parse(strDateTime);
          這段代碼就可以解析上面的時(shí)間字符串了.
          原因是:
          1.+0800表示的是時(shí)區(qū)的信息,用Z可以解析
          2.Feb這個(gè)月份只有用Locale.ENGLISH才能解析,如果用缺省的new SimpleDateFormat("dd/MMM/yyyy:hh:mm:ss Z"),
          這時(shí)解析器使用的是Locale.getDefault(),即Local.Chinese,而Feb在中文里并沒(méi)有定義是幾月,所以解析會(huì)出錯(cuò).
          如果時(shí)間字符串是"27/一月/2008:10:12:44 +0800",注意英文簡(jiǎn)稱的月份已經(jīng)變?yōu)橹形牡脑路?這時(shí)用確認(rèn)的Locale是可以正確解析的.即:
          SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy:hh:mm:ss Z");
          formatter.parse(strDateTime);
          或者:
          SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy:hh:mm:ss Z", Locale.CHINESE);
          formatter.parse(strDateTime);

          posted on 2008-02-28 14:17 pony 閱讀(4574) 評(píng)論(2)  編輯  收藏 所屬分類: Java

          評(píng)論

          # re: 27/Feb/2008:10:12:44 +0800這樣的日期格式在java里的解析. 2008-02-28 14:18 pony

          補(bǔ)充一下日期格式吧:
          字母 日期或時(shí)間元素 表示 示例
          G Era 標(biāo)志符 Text AD
          y 年 Year 1996; 96
          M 年中的月份 Month July; Jul; 07
          w 年中的周數(shù) Number 27
          W 月份中的周數(shù) Number 2
          D 年中的天數(shù) Number 189
          d 月份中的天數(shù) Number 10
          F 月份中的星期 Number 2
          E 星期中的天數(shù) Text Tuesday; Tue
          a Am/pm 標(biāo)記 Text PM
          H 一天中的小時(shí)數(shù)(0-23) Number 0
          k 一天中的小時(shí)數(shù)(1-24) Number 24
          K am/pm 中的小時(shí)數(shù)(0-11) Number 0
          h am/pm 中的小時(shí)數(shù)(1-12) Number 12
          m 小時(shí)中的分鐘數(shù) Number 30
          s 分鐘中的秒數(shù) Number 55
          S 毫秒數(shù) Number 978
          z 時(shí)區(qū) General time zone Pacific Standard Time; PST; GMT-08:00
          Z 時(shí)區(qū) RFC 822 time zone -0800
            回復(fù)  更多評(píng)論   

          # re: 27/Feb/2008:10:12:44 +0800這樣的日期格式在java里的解析. 2008-04-12 10:40 豆抓搜索

          日期不會(huì)處理:) http://www.douzhua.com  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 卢龙县| 揭西县| 元谋县| 白朗县| 彰武县| 林芝县| 武定县| 西宁市| 陇西县| 安泽县| 吴忠市| 宾川县| 平舆县| 浦江县| 柳河县| 凤翔县| 福清市| 泾阳县| 和平县| 玉龙| 漳平市| 庄浪县| 南京市| 冕宁县| 额济纳旗| 台江县| 磴口县| 商丘市| 师宗县| 香格里拉县| 安丘市| 松滋市| 武陟县| 从江县| 丰顺县| 福建省| 交城县| 镇巴县| 全州县| 宣城市| 开化县|