langtools/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java
changeset 865 21668f049d28
parent 810 e4b6a6d206e6
child 1205 b316e32eb90c
equal deleted inserted replaced
864:b1cf6afb8244 865:21668f049d28
    30 import java.io.IOException;
    30 import java.io.IOException;
    31 import java.io.RandomAccessFile;
    31 import java.io.RandomAccessFile;
    32 import java.text.MessageFormat;
    32 import java.text.MessageFormat;
    33 import java.util.ArrayList;
    33 import java.util.ArrayList;
    34 import java.util.Arrays;
    34 import java.util.Arrays;
       
    35 import java.util.Calendar;
    35 import java.util.Collections;
    36 import java.util.Collections;
    36 import java.util.HashMap;
    37 import java.util.HashMap;
    37 import java.util.HashSet;
    38 import java.util.HashSet;
    38 import java.util.Iterator;
    39 import java.util.Iterator;
    39 import java.util.List;
    40 import java.util.List;
  1305                     javatime = dosToJavaTime(nativetime);
  1306                     javatime = dosToJavaTime(nativetime);
  1306             }
  1307             }
  1307             return javatime;
  1308             return javatime;
  1308         }
  1309         }
  1309 
  1310 
  1310         // From java.util.zip
  1311         // based on dosToJavaTime in java.util.Zip, but avoiding the
  1311         private static long dosToJavaTime(int nativetime) {
  1312         // use of deprecated Date constructor
  1312             // Bootstrap build problems prevent me from using the code directly
  1313         private static long dosToJavaTime(int dtime) {
  1313             // Convert the raw/native time to a long for now
  1314             Calendar c = Calendar.getInstance();
  1314             return (long)nativetime;
  1315             c.set(Calendar.YEAR,        ((dtime >> 25) & 0x7f) + 1980);
       
  1316             c.set(Calendar.MONTH,       ((dtime >> 21) & 0x0f) - 1);
       
  1317             c.set(Calendar.DATE,        ((dtime >> 16) & 0x1f));
       
  1318             c.set(Calendar.HOUR_OF_DAY, ((dtime >> 11) & 0x1f));
       
  1319             c.set(Calendar.MINUTE,      ((dtime >>  5) & 0x3f));
       
  1320             c.set(Calendar.SECOND,      ((dtime <<  1) & 0x3e));
       
  1321             c.set(Calendar.MILLISECOND, 0);
       
  1322             return c.getTimeInMillis();
  1315         }
  1323         }
  1316 
  1324 
  1317         void setNativeTime(int natTime) {
  1325         void setNativeTime(int natTime) {
  1318             nativetime = natTime;
  1326             nativetime = natTime;
  1319         }
  1327         }