diff options
Diffstat (limited to 'libraries/sts-common-util/util/src/com/android/sts/common/util/SplUtils.java')
-rw-r--r-- | libraries/sts-common-util/util/src/com/android/sts/common/util/SplUtils.java | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/libraries/sts-common-util/util/src/com/android/sts/common/util/SplUtils.java b/libraries/sts-common-util/util/src/com/android/sts/common/util/SplUtils.java new file mode 100644 index 000000000..afb7b12af --- /dev/null +++ b/libraries/sts-common-util/util/src/com/android/sts/common/util/SplUtils.java @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.sts.common.util; + +import java.time.Instant; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; + +/** Tools for Security Patch Levels and LocalDates representing them. */ +public final class SplUtils { + private static final ZoneId UTC_ZONE_ID = ZoneId.of("UTC"); + private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + + public enum Type { + PARTIAL(1), // platform + COMPLETE(5); // device-specific (kernel, soc, etc) + + public final int day; + + Type(int day) { + this.day = day; + } + } + + public static LocalDate localDateFromMillis(long millis) { + return Instant.ofEpochMilli(millis).atZone(UTC_ZONE_ID).toLocalDate(); + } + + public static LocalDate localDateFromSplString(String spl) { + return LocalDate.parse(spl, formatter); + } + + public static String format(LocalDate date) { + return date.format(formatter); + } +} |