在Application中显示Android application.apk创builddate

我正在开发一个Android应用程序,我想要显示.apk的版本和date现在我可以使用PackageInfo显示应用程序的应用程序版本,现在我想显示应用程序创build或.apk创builddate的date。

  • android.database.sqlite.SQLiteDatabase.rawQuery()不使用SQLite datetime()函数更新DATETIME列
  • 毫秒到午夜
  • Android:如何将DatePicker视图date格式从MM / dd / yyyy更改为dd / MM / yyyy?
  • 在Android中获取日期对象的日期对象的价值?
  • 在特定的时间设置android闹钟
  • 在Android上格式化时间,同时遵循喜好(24小时时钟与AM / PM等)。
  • 如何在一个格式化的datestring中包含毫秒?
  • Android中的Date应该使用什么类?
  • 检查classes.dex最后修改date的方法,这意味着上次应用程序的代码生成时:

      try{ ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), 0); ZipFile zf = new ZipFile(ai.sourceDir); ZipEntry ze = zf.getEntry("classes.dex"); long time = ze.getTime(); String s = SimpleDateFormat.getInstance().format(new java.util.Date(time)); }catch(Exception e){ } 

    对于新读者来说:

     public static String getAppTimeStamp(Context context) { String timeStamp = ""; try { ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(context.getPackageName(), 0); String appFile = appInfo.sourceDir; long time = new File(appFile).lastModified(); SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); timeStamp = formatter.format(time); } catch (Exception e) { } return timeStamp; } 

    https://stackoverflow.com/a/2832419/1968592

    我使用与Irshad Khan和Pointer Null相同的策略,除了我更喜欢MANIFEST.MF文件。 即使布局被修改(这不是classes.dex的情况),这个被重新生成。 我也强制在格林尼治标准时间格式化,以避免混淆terminal和服务器TZs(如果比较必须作出,例如:检查最新版本)。

    它导致以下代码:

      try{ ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), 0); ZipFile zf = new ZipFile(ai.sourceDir); ZipEntry ze = zf.getEntry("META-INF/MANIFEST.MF"); long time = ze.getTime(); SimpleDateFormat formatter = (SimpleDateFormat) SimpleDateFormat.getInstance(); formatter.setTimeZone(TimeZone.getTimeZone("gmt")); String s = formatter.format(new java.util.Date(time)); zf.close(); }catch(Exception e){ }