¿Cómo agregar una etiqueta de tiempo al nombre de la aplicación empaquetada en gradle, pero la hora internacional es ocho horas más tarde que la hora de Beijing, cómo usar la hora de Beijing?

 El trasfondo es: cuando gradle genera el paquete apk, se debe generar un nombre de paquete específico, de la siguiente manera; sin embargo, el logotipo UTC se usa para imprimir la hora internacional, y la hora internacional está ocho zonas horarias detrás de la hora de Beijing, es decir , ocho horas de retraso. ¿Cómo usar la hora de Pekín?

    android.applicationVariants.all { variant ->
        variant.outputs.all { output ->
            def outputFile = output.outputFile
            if (outputFile != null && outputFile.name.endsWith(".apk")) {
                if (variant.buildType.name == "release") {
                    outputFileName = "xxx_v" + defaultConfig.versionName + "_" + releaseTime() + "_" + variant.productFlavors[0].name + ".apk"
                } else {
                    outputFileName = "xxx_v" + defaultConfig.versionName + "_" + releaseTime() + "_" + variant.productFlavors[0].name + "_" + variant.buildType.name + ".apk"
                }
            }
        }
    }
}

static def releaseTime() {
    // 国际时间,比北京时间晚八小时
    // TimeZone beijingTimeZone = TimeZone.getTimeZone("UTC")
    // 获取代表北京时区的TimeZone对象
    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai")
    // 创建一个SimpleDateFormat实例,并将其时区设置为北京
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm")
    dateFormat.setTimeZone(timeZone)
    // 获取当前时间并格式化为北京时间
    return dateFormat.format(new Date())
}

Solución: obtenga el objeto TimeZone que representa la zona horaria de Beijing, el identificador es "Asia/Shanghai", y luego formatee la fecha de la hora actual. El método anterior se define y utiliza en el archivo Gradle. El siguiente es un ejemplo de uso en un archivo java:

    public static void main(String[] args) {
        System.out.println(releaseTime());
    }

    public static String releaseTime() {
        // 国际时间,比北京时间晚八小时
        // TimeZone beijingTimeZone = TimeZone.getTimeZone("UTC");
        // 获取代表北京时区的TimeZone对象
        TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
        // 创建一个SimpleDateFormat实例,并将其时区设置为北京
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm");
        dateFormat.setTimeZone(timeZone);
        // 获取当前时间并格式化为北京时间
        return dateFormat.format(new Date());
    }

Crear valor, feliz de compartir! 

Supongo que te gusta

Origin blog.csdn.net/ly_xiamu/article/details/131260309
Recomendado
Clasificación