csusky

          常用鏈接

          統計

          最新評論

          org.apache.lucene.document.DateField

          該類提供了日期和字符串之間的相互轉化,實際上是 long型和String型的相互轉化,轉化時用到了一個不常用的
          Long.toString(long,int);方法。是按指定的方式對long型進行轉化
          第一個參數是要轉化的long,第二個參數是轉化時候的基數,如果基數是10就相當于方法Long.toString(long);
          這里使用的參數是最大值,即36== 10個數字+26個英文字母。這樣轉化出來的字符串長度比較短,占用比較少的空間,
          另外,在轉化時,統一了轉化后的字符串長度,如果不足9位(日期的long轉化后最高為9位,1970之后的日期可正確轉換),
          統一長度后的字符串可以通過比較字符串來比較日期的大小。


          日期轉化成的字符串類似于
          0fev8eza3
          本來應該是fev8eza3 采取了不足9位補0的方法。

            private static int DATE_LEN = Long.toString(1000L*365*24*60*60*1000,
                      Character.MAX_RADIX).length();
          計算出從1970年開始后1000年的時間轉化為字符串后的長度,所有轉化后的時間都不應超過這個長度,如果不足則在前面補0

          可以通過字符串轉化為日期的函數計算出能表示的最大日期為
          stringToTime("zzzzzzzzz");
          打印出來是 Fri Apr 22 19:04:28 CST 5188  
          所以該函數能轉化的日期范圍為 1970-1-1~~5188-4-22


          日期轉化為字符串
          public static String timeToString(long time)

          字符串轉化為日期
          public static long stringToTime(String s)


          實際上 函數 LongToString(long i,int radix) 相當于  先將i轉化為radix進制的整數,然后再用函數
          LongToString(i)轉化為字符串。所以radix的值應該在2--36之間如果不是 則按照10進制計算。

          posted on 2008-04-10 19:26 曉宇 閱讀(349) 評論(0)  編輯  收藏 所屬分類: LUCENE

          主站蜘蛛池模板: 金溪县| 林甸县| 盱眙县| 岳普湖县| 甘南县| 子洲县| 迁安市| 永城市| 德保县| 勃利县| 浙江省| 商水县| 随州市| 潮安县| 栖霞市| 东至县| 江山市| 鄂尔多斯市| 易门县| 洞口县| 兰溪市| 应用必备| 两当县| 玉环县| 津市市| 遂川县| 华安县| 台南县| 江安县| 博兴县| 灵丘县| 汉中市| 巴东县| 宜君县| 潼南县| 宣汉县| 项城市| 都江堰市| 汾阳市| 吕梁市| 营口市|