Skip to content

Commit a3daf37

Browse files
[Android] Avoid using OffsetDateTime on APIs 25 and lower (#75196)
1 parent cc9d465 commit a3daf37

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/tasks/AndroidAppBuilder/Templates/MonoRunner.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.io.OutputStream;
2525
import java.io.BufferedInputStream;
2626
import java.util.ArrayList;
27+
import java.util.Calendar;
2728
import java.util.zip.ZipEntry;
2829
import java.util.zip.ZipInputStream;
2930
import java.time.OffsetDateTime;
@@ -90,7 +91,7 @@ public static int initialize(String entryPointLibName, String[] args, Context co
9091
unzipAssets(context, filesDir, "assets.zip");
9192

9293
Log.i("DOTNET", "MonoRunner initialize,, entryPointLibName=" + entryPointLibName);
93-
int localDateTimeOffset = OffsetDateTime.now().getOffset().getTotalSeconds();
94+
int localDateTimeOffset = getLocalDateTimeOffset();
9495
return initRuntime(filesDir, cacheDir, testResultsDir, entryPointLibName, args, localDateTimeOffset);
9596
}
9697

@@ -152,6 +153,15 @@ static void unzipAssets(Context context, String toPath, String zipName) {
152153
}
153154
}
154155

156+
static int getLocalDateTimeOffset() {
157+
if (android.os.Build.VERSION.SDK_INT >= 26) {
158+
return OffsetDateTime.now().getOffset().getTotalSeconds();
159+
} else {
160+
int offsetInMillis = Calendar.getInstance().getTimeZone().getRawOffset();
161+
return offsetInMillis / 1000;
162+
}
163+
}
164+
155165
static native int initRuntime(String libsDir, String cacheDir, String testResultsDir, String entryPointLibName, String[] args, int local_date_time_offset);
156166

157167
static native int setEnv(String key, String value);

0 commit comments

Comments
 (0)