¿Cómo leer por programación la fecha en que mi apk de Android fue construido?

¿Es posible leer programáticamente la fecha en que se construyó mi apk de Android? No pude encontrar nada en la clase PackageInfo.

Quiero expirar las versiones beta de mi aplicación y la forma más fácil sería leer una fecha así y expirar después de un prefijo de días, por lo que no tengo que actualizar el código para que cada vez que construir y desplegar un versión beta.

Ha sido un tiempo desde que se le preguntó, pero aquí es cómo lo hice con Android Studio w / gradle ….

En build.gradle , cada uno de los tipos de compilación debe tener un buildConfigField . (Esta es una versión simplificada de la configuración, es probable que tenga otras cosas aquí, pero quería mostrar dónde la puso):

 android { signingConfigs { buildTypes { debug { buildConfigField "java.util.Date", "buildTime", "new java.util.Date(" + System.currentTimeMillis() + "L)" } release { buildConfigField "java.util.Date", "buildTime", "new java.util.Date(" + System.currentTimeMillis() + "L)" } } } } 

(Tenga en cuenta que " BuildConfigField " es la versión más reciente de " BuildConfigLine " a partir del sistema de compilación 0.8.0).

La siguiente vez que gradle ensambla o ensambla Debug, debería generar:

./build/source/buildConfig/releaseORdebug/com/your/project/BuildConfig.java

A continuación, dentro de ese archivo BuildConfig , deberías ver que algo se ha generado automáticamente como:

 public final class BuildConfig { public static final java.util.Date buildTime = new java.util.Date(1395794838381L); } 

Por lo tanto, para acceder a la fecha de compilación dentro de su aplicación ….

 Date buildDate = BuildConfig.buildTime; Log.i("MyProgram", "This .apk was built on " + buildDate.toString()); 

(Puede formatear la fecha como desee utilizando un SimpleDateFormat .)

Espero que esto sea útil.

  • Cómo cambiar el idioma de fecha y hora en android
  • Obtener la cadena del día a partir del día de la semana integer java
  • Fechas de genarate entre dos fechas en android
  • Cómo seleccionar datos entre dos intervalos de fechas en android SQLite
  • Conversión de fecha a un idioma diferente
  • ¿Cómo puedo obtener la diferencia entre dos fechas en android ?, intentado todo y publicar
  • Cómo dar formato a la fecha con el día en Android?
  • Cómo dividir cadena en java
  • ¿Cómo mostrar el formato de fecha según la configuración regional?
  • Java convertir la marca de tiempo UTC a DateTime local
  • Fechas horarias de la fecha de Android driving me nuts
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.