該類提供了日期和字符串之間的相互轉化,實際上是 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進制計算。