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 曉宇 閱讀(344) 評論(0)  編輯  收藏 所屬分類: LUCENE

          主站蜘蛛池模板: 定襄县| 甘孜县| 青龙| 泽普县| 大冶市| 开鲁县| 镇江市| 望奎县| 淮北市| 仙游县| 灵武市| 新龙县| 新邵县| 文化| 青铜峡市| 贵南县| 芦溪县| 元谋县| 黄浦区| 乃东县| 阳曲县| 温州市| 花莲县| 七台河市| 噶尔县| 盱眙县| 富顺县| 专栏| 商都县| 旌德县| 广饶县| 铜陵市| 社旗县| 菏泽市| 唐河县| 建平县| 邯郸县| 石屏县| 德庆县| 湖南省| 阿拉善左旗|