Java 为什么ZipEntry显示APK文件的编译时间不正确?
Im使用此代码显示应用程序编译日期:Java 为什么ZipEntry显示APK文件的编译时间不正确?,java,android,Java,Android,Im使用此代码显示应用程序编译日期: ApplicationInfo ai = a.getPackageManager().getApplicationInfo(a.getPackageName(), 0); ZipFile zf = new ZipFile(ai.sourceDir); ZipEntry ze = zf.getEntry("META-INF/MANIFEST.MF"); long time = ze.getTime() + (36
ApplicationInfo ai = a.getPackageManager().getApplicationInfo(a.getPackageName(), 0);
ZipFile zf = new ZipFile(ai.sourceDir);
ZipEntry ze = zf.getEntry("META-INF/MANIFEST.MF");
long time = ze.getTime() + (3600000 * 2);
Log.i("date", new SimpleDateFormat("HH:mm:ss dd.MM.yyyy").format(new Date(time)));
zf.close();
昨天一切都很好,但今天(Android Studio升级后)?每次都会显示
1979年11月30日02:00:00
???
我已经清理并重建了这个项目。
这里怎么了?好的,我有一个答案: 最好的选择是在Gradle中使用时间戳
android {
defaultConfig {
buildConfigField "long", "TIMESTAMP", System.currentTimeMillis() + "L"
}
}
谢谢:)好的,我有一个答案: 最好的选择是在Gradle中使用时间戳
android {
defaultConfig {
buildConfigField "long", "TIMESTAMP", System.currentTimeMillis() + "L"
}
}
谢谢:)根据,只要在Gradle属性中设置“android.keepTimestampsInApk=true”,获取构建日期的ZipFile方法仍然可以使用
Gradle故意将生成时间戳归零,除非设置了该属性。根据,只要在Gradle属性中设置了“android.keepTimestampsInApk=true”,就仍然可以使用ZipFile方法获取生成日期
Gradle故意将生成时间戳归零,除非设置了该属性。为什么要在时间中添加
3600000*2
?83.3333天?从什么时候开始,清单日期就是编译日期了?我用的是:使用清单日期作为编译日期,或者在时间中添加3600000*2
,这都是毫无意义的。添加3600000*2只适合我,不管怎样,升级时需要清除选项。为什么要在时间中添加3600000*2
?83.3333天?从什么时候开始,清单日期就是编译日期了?我使用的是:使用清单日期作为编译日期,或者在时间中添加3600000*2
,这都是毫无意义的。添加3600000*2只适合我,不必担心,作为Gradle更新时所需的清除选项。