背景は、 gradle が apk パッケージを生成するときに、次のように特定のパッケージ名を生成する必要があることですが、UTC ロゴを使用すると、印刷される時刻は国際時刻であり、国際時刻は北京時間から 8 タイムゾーン遅れていることです。つまり8時間遅れです。北京時間の使い方は?
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())
}
解決策:北京のタイムゾーンを表す TimeZone オブジェクトを取得し、識別子は「アジア/上海」で、現在の時刻の日付をフォーマットします。上記のメソッドは、gradle ファイルで定義され、使用されます。以下は 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());
}
価値を創造し、喜んで共有します!