2016-09-21 65 views
-1

即時通訊使用此代碼來顯示應用程序的編譯日期:爲什麼ZipEntry顯示APK文件的編譯時間不正確?

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中升級後???)每次它表明

02:00:00 30.11。 1979

??? 我已經清理和重建項目。 這裏有什麼問題?

+0

爲什麼要補充'3600000 * 2'的時間? 83.3333天?自從清單日期是什麼時候編譯日期? – EJP

+0

我正在使用:http://stackoverflow.com/questions/22979806/display-the-android-application-apk-creation-date-in-application – Mattiah85

+0

沒有什麼關於使用清單日期作爲編譯日期或在當時加入'3600000 * 2'。 – EJP

回答

0

好吧,我有一個從答案:在搖籃使用時間戳How to write build time stamp into apk

最佳選項

android { 
defaultConfig { 
    buildConfigField "long", "TIMESTAMP", System.currentTimeMillis() + "L" 
} 

}

Date buildDate = new Date(BuildConfig.TIMESTAMP); 

謝謝:)