diff --git a/src/tasks/AndroidAppBuilder/Templates/MonoRunner.java b/src/tasks/AndroidAppBuilder/Templates/MonoRunner.java index 4bd5a68d41623b..bd91f93f6b760f 100644 --- a/src/tasks/AndroidAppBuilder/Templates/MonoRunner.java +++ b/src/tasks/AndroidAppBuilder/Templates/MonoRunner.java @@ -24,6 +24,7 @@ import java.io.OutputStream; import java.io.BufferedInputStream; import java.util.ArrayList; +import java.util.Calendar; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import java.time.OffsetDateTime; @@ -90,7 +91,7 @@ public static int initialize(String entryPointLibName, String[] args, Context co unzipAssets(context, filesDir, "assets.zip"); Log.i("DOTNET", "MonoRunner initialize,, entryPointLibName=" + entryPointLibName); - int localDateTimeOffset = OffsetDateTime.now().getOffset().getTotalSeconds(); + int localDateTimeOffset = getLocalDateTimeOffset(); return initRuntime(filesDir, cacheDir, testResultsDir, entryPointLibName, args, localDateTimeOffset); } @@ -152,6 +153,15 @@ static void unzipAssets(Context context, String toPath, String zipName) { } } + static int getLocalDateTimeOffset() { + if (android.os.Build.VERSION.SDK_INT >= 26) { + return OffsetDateTime.now().getOffset().getTotalSeconds(); + } else { + int offsetInMillis = Calendar.getInstance().getTimeZone().getRawOffset(); + return offsetInMillis / 1000; + } + } + static native int initRuntime(String libsDir, String cacheDir, String testResultsDir, String entryPointLibName, String[] args, int local_date_time_offset); static native int setEnv(String key, String value);