KotlinX multiplatform date/time library

Overview

kotlinx-datetime

JetBrains incubator project GitHub license Maven Central

A multiplatform Kotlin library for working with date and time.

See Using in your projects for the instructions how to setup a dependency in your project.

Design overview

There are a few guiding principles in the design of kotlinx-datetime. First of all, it is pragmatic, focused on the most common problems developers face every day (pun intended) when working with dates and times. It is not all-encompassing and lacks some domain-specific utilities that special-purpose applications might need. We chose convenience over generality, so the API surface this library provides is as minimal as possible to meet the use-cases.

The library puts a clear boundary between physical time of an instant and a local, time-zone dependent civil time, consisting of components such as year, month, etc that people use when talking about time. We intentionally avoid entities in the library that mix both together and could be misused. However, there are convenience operations that take, for example, a physical instant and perform a calendar-based adjustment (such as adding a month); all such operation explicitly take a time-zone information as parameter to clearly state that their result depends on the civil time-zone rules which are subject to change at any time.

The library is based on the ISO 8601 international standard, other ways to represent dates and times are out of its scope. Internationalization (such as locale-specific month and day names) is out the scope, too.

Types

The library provides the basic set of types for working with date and time:

  • Instant to represent a moment on the UTC-SLS time scale;
  • Clock to obtain the current instant;
  • LocalDateTime to represent date and time components without a reference to the particular time zone;
  • LocalDate to represent the components of date only;
  • TimeZone and ZoneOffset provide time zone information to convert between Instant and LocalDateTime;
  • Month and DayOfWeek enums;
  • DateTimePeriod to represent a difference between two instants decomposed into date and time units;
  • DatePeriod is a subclass of DateTimePeriod with zero time components, it represents a difference between two LocalDate values decomposed into date units.
  • DateTimeUnit provides a set of predefined date and time units to use in arithmetic operations on Instant and LocalDate.

Type use-cases

Here is some basic advice on how to choose which of the date-carrying types to use in what cases:

  • Use Instant to represent a timestamp of the event that had already happened in the past (like a timestamp of a log entry) or will definitely happen in a well-defined instant of time in the future not far away from now (like an order confirmation deadline in 1 hour from now).

  • Use LocalDateTime to represent a time of the event that is scheduled to happen in the far future at a certain local time (like a scheduled meeting in a few months from now). You'll have to keep track of the TimeZone of the scheduled event separately. Try to avoid converting future events to Instant in advance, because time-zone rules might change unexpectedly in the future. In this blog post, you can read more about why it's not always a good idea to use Instant everywhere.

    Also, use LocalDateTime to decode an Instant to its local date-time components for display and UIs.

  • Use LocalDate to represent a date of the event that does not have a specific time associated with it (like a birth date).

Operations

With the above types you can get the following operations done.

Getting the current moment of time

The current moment of time can be captured with the Instant type. To obtain an Instant corresponding to the current moment of time, use now() function of the Clock interface:

val clock: Clock = ...
val currentMoment = clock.now()

An instance of Clock can be injected through the function/class parameters, or you can use its default implementation Clock.System that represents the system clock:

val currentMoment = Clock.System.now()

Converting an instant to local date and time components

Instant is just a counter of high resolution time intervals since the beginning of time scale. To get human readable components from an Instant value you need to convert it to LocalDateTime type that represents date and time components without a reference to the particular time zone.

The TimeZone type provides the rules to convert instants from and to date/time components.

val currentMoment: Instant = Clock.System.now()
val datetimeInUtc: LocalDateTime = currentMoment.toLocalDateTime(TimeZone.UTC)
val datetimeInSystemZone: LocalDateTime = currentMoment.toLocalDateTime(TimeZone.currentSystemDefault())

LocalDateTime instance exposes familiar components of the Gregorian calendar: year, month, dayOfMonth, hour, and so on up to nanosecond. The property dayOfWeek shows what weekday that date is, and dayOfYear shows the day number since the beginning of a year.

Additional time zones can be acquired by their string identifier with the TimeZone.of(id: String) function.

val tzBerlin = TimeZone.of("Europe/Berlin")
val datetimeInBerlin = currentMoment.toLocalDateTime(tzBerlin)

LocalDateTime instance can be constructed from individual components:

val kotlinReleaseDateTime = LocalDateTime(2016, 2, 15, 16, 57, 0, 0)

An instant can be obtained from LocalDateTime by interpreting it as a time moment in a particular TimeZone:

val kotlinReleaseInstant = kotlinReleaseDateTime.toInstant(TimeZone.of("UTC+3"))

Getting local date components

LocalDate type represents local date without time. You can obtain it from Instant by converting it to LocalDateTime and taking its date property.

val now: Instant = Clock.System.now()
val today: LocalDate = now.toLocalDateTime(TimeZone.currentSystemDefault()).date
// or more short
val today: LocalDate = Clock.System.todayAt(TimeZone.currentSystemDefault())

Note, that today's date really depends on the time zone in which you're observing the current moment.

LocalDate can be constructed from three components, year, month, and day:

val knownDate = LocalDate(2020, 2, 21)

Converting instant to and from unix time

An Instant can be converted to a number of milliseconds since the Unix/POSIX epoch with the toEpochMilliseconds() function. To convert back, use Instant.fromEpochMilliseconds(Long) companion object function.

Converting instant and local date/time to and from string

Currently, Instant, LocalDateTime, and LocalDate only support ISO-8601 format. The toString() function is used to convert the value to a string in that format, and the parse function in companion object is used to parse a string representation back.

val instantNow = Clock.System.now()
instantNow.toString()  // returns something like 2015-12-31T12:30:00Z
val instantBefore = Instant.parse("2010-06-01T22:19:44.475Z")

Alternatively, String.to...() extension functions can be used instead of parse, where it feels more convenient:

LocalDateTime uses the similar format, but without Z UTC time zone designator in the end.

LocalDate uses format with just year, month, and date components, e.g. 2010-06-01.

"2010-06-01T22:19:44.475Z".toInstant()
"2010-06-01T22:19:44".toLocalDateTime()
"2010-06-01".toLocalDate()

Instant arithmetic

val now = Clock.System.now()
val instantInThePast: Instant = Instant.parse("2020-01-01T00:00:00Z")
val durationSinceThen: Duration = now - instantInThePast
val equidistantInstantInTheFuture: Instant = now + durationSinceThen

Duration is a type from the experimental kotlin.time package in the Kotlin standard library. This type holds the amount of time that can be represented in different time units: from nanoseconds to 24H days.

To get the calendar difference between two instants you can use Instant.periodUntil(Instant, TimeZone) function.

val period: DateTimePeriod = instantInThePast.periodUntil(Clock.System.now(), TimeZone.UTC)

DateTimePeriod represents a difference between two particular moments as a sum of calendar components, like "2 years, 3 months, 10 days, and 22 hours".

The difference can be calculated as an integer amount of specified date or time units:

val diffInMonths = instantInThePast.until(Clock.System.now(), DateTimeUnit.MONTH, TimeZone.UTC)

There are also shortcuts yearsUntil(...), monthsUntil(...), and daysUntil(...).

A particular amount of date/time units or a date/time period can be added to an Instant with the plus function:

val now = Clock.System.now()
val systemTZ = TimeZone.currentSystemDefault()
val tomorrow = now.plus(2, DateTimeUnit.DAY, systemTZ)
val threeYearsAndAMonthLater = now.plus(DateTimePeriod(years = 3, months = 1), systemTZ)

Note that plus and ...until operations require TimeZone as a parameter because the calendar interval between two particular instants can be different, when calculated in different time zones.

Date arithmetic

The similar operations with date units are provided for LocalDate type:

  • LocalDate.plus(number, DateTimeUnit.DateBased)
  • LocalDate.plus(DatePeriod)
  • LocalDate.until(LocalDate, DateTimeUnit.DateBased) and the shortcuts yearsUntil, monthUntil, daysUntil
  • LocalDate.periodUntil(LocalDate): DatePeriod and LocalDate.minus(LocalDate): DatePeriod

Notice that instead of general DateTimeUnit and DateTimePeriod we're using their subtypes DateTimeUnit.DateBased and DatePeriod respectively. This allows preventing the situations when time components are being added to a date at compile time.

Date + time arithmetic

Arithmetic on LocalDateTime is intentionally omitted. The reason for this is that the presence of daylight saving time transitions (changing from standard time to daylight saving time and back) causes LocalDateTime arithmetic to be ill-defined. For example, consider time gaps (or, as dst tag wiki on Stack Overflow calls them, "spring forward" transitions), that is, ranges of date + time combinations that never occur in a given time zone due to clocks moving forward. If we allowed LocalDateTime arithmetic that ignored time zones, then it could result in LocalDateTime instances that are inside a time gap and are invalid in the implied time zone.

Therefore, the recommended way to use a LocalDateTime is to treat it as a representation of an Instant, perform all the required arithmetic on Instant values, and only convert to LocalDateTime when a human-readable representation is needed.

val timeZone = TimeZone.of("Europe/Berlin")
val localDateTime = LocalDateTime.parse("2021-03-27T02:16:20")
val instant = localDateTime.toInstant(timeZone)

val instantOneDayLater = instant.plus(1, DateTimeUnit.DAY, timeZone)
val localDateTimeOneDayLater = instantOneDayLater.toLocalDateTime(timeZone)
// 2021-03-28T03:16:20, as 02:16:20 that day is in a time gap

val instantTwoDaysLater = instant.plus(2, DateTimeUnit.DAY, timeZone)
val localDateTimeTwoDaysLater = instantTwoDaysLater.toLocalDateTime(timeZone)
// 2021-03-29T02:16:20

Implementation

The implementation of date/time types, such as Instant, LocalDateTime, TimeZone and so on, relies on:

Known/open issues, work TBD

  • Some kind of Clock interface is needed as a pluggable replacement for Instant.now().
  • Flexible locale-neutral parsing and formatting facilities are needed to support various date/time interchange formats that are used in practice (in particular, various RFCs).

Using in your projects

Note that the library is experimental, and the API is subject to change.

The library is published to Maven Central.

The library is compatible with the Kotlin Standard Library not lower than 1.5.0.

If you target Android devices running below API 26, you need to use Android Gradle plugin 4.0 or newer and enable core library desugaring.

Gradle

  • Add the Maven Central repository if it is not already there:
repositories {
    mavenCentral()
}
  • In multiplatform projects, add a dependency to the commonMain source set dependencies
kotlin {
    sourceSets {
        commonMain {
             dependencies {
                 implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.2.1")
             }
        }
    }
}
  • To use the library in a single-platform project, add a dependency to the dependencies block.
dependencies {
    implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.2.1")
}

Note about time zones in JS

By default, there's only one time zone available in Kotlin/JS: the SYSTEM time zone with a fixed offset.

If you want to use all time zones in Kotlin/JS platform, you need to add the following npm dependency:

kotlin {
    sourceSets {
        val jsMain by getting {
            dependencies {
                implementation(npm("@js-joda/timezone", "2.3.0"))
            }
        }
    }
}

and after that add the following initialization code in your project:

@JsModule("@js-joda/timezone")
@JsNonModule
external object JsJodaTimeZoneModule

private val jsJodaTz = JsJodaTimeZoneModule

Maven

Add a dependency to the <dependencies> element. Note that you need to use the platform-specific -jvm artifact in Maven.

<dependency>
    <groupId>org.jetbrains.kotlinx</groupId>
    <artifactId>kotlinx-datetime-jvm</artifactId>
    <version>0.2.1</version>
</dependency>

Building

Before building, ensure that you have thirdparty/date submodule initialized and updated. IDEA does that automatically when cloning the repository, and if you cloned it in the command line, you may need to run additionally:

git submodule init
git submodule update

The path to JDK 8 must be specified either with the environment variable JDK_8 or with the gradle property JDK_8. For local builds, you can use a later version of JDK if you don't have that version installed.

After that, the project can be opened in IDEA and built with Gradle.

Comments
  • Provide time only representation, e.g. LocalTime

    Provide time only representation, e.g. LocalTime

    Hey,

    Currently there is support for LocalDateTime, but I would like to use some time representation without a date. Ideall would be something like LocalTime for my use case.

    my use case: represent daily events

    my current workaround: use DateTimePeriod with a max of 24h in total

    enhancement 
    opened by molikuner 18
  • ArrayIndexOutOfBoundsException ZoneRules.isFixedOffset

    ArrayIndexOutOfBoundsException ZoneRules.isFixedOffset

    After updating to kotlinx-datetime:0.3.0 I am seeing crashes on Android with the following stacktrace:

    java.lang.ArrayIndexOutOfBoundsException: length=0; index=-1 at j$.time.zone.ZoneRules.isFixedOffset at kotlinx.datetime.TimeZone$Companion.ofZone$kotlinx_datetime(SourceFile:47) at kotlinx.datetime.TimeZone$Companion.currentSystemDefault(SourceFile:34)

    I am not totally sure where to report this, the crash is introduced due to 0.3.0 making calls to ZoneRules.isFixedOffset. Though by looking at the source code of java.time.zone.ZoneRules here, I can't see how an ArrayIndexOutOfBoundsException can happen.

    I have coreLibraryDesugaring enabled, using com.android.tools:desugar_jdk_libs:1.1.5

    bug 
    opened by MarioNoll 13
  • 0.4.0 release date?

    0.4.0 release date?

    I see that #57 has been completed, and it is the only ticket in the 0.4.0 milestone. I would love to use this functionality in my project, but I would prefer not to use a master build. Any idea on timeline for a release?

    opened by mikeholler 11
  • Make compatible with Kotlin 1.5

    Make compatible with Kotlin 1.5

    The versions 0.1.0 and 0.1.1 are incompatible with Kotlin 1.5.0 due to the changes in the experimental Duration inline value class there, which is widely used in kotlinx-datetime.

    When using these versions with Kotlin 1.5, users can observe the following stack traces:

    kotlin.time.DurationKt.getNanoseconds(J)D
    java.lang.NoSuchMethodError: kotlin.time.DurationKt.getNanoseconds(J)D
    	at kotlinx.datetime.DateTimeUnit$TimeBased.<init>(DateTimeUnit.kt:54)
    	at kotlinx.datetime.DateTimeUnit.<clinit>(DateTimeUnit.kt:108)
    

    or

    java.lang.NoSuchMethodError: ‘kotlinx.datetime.Instant kotlinx.datetime.Instant.plus-LRDsOJo(long)’
    
    opened by ilya-g 11
  • kmm Instant conversion to NSDate

    kmm Instant conversion to NSDate

    Trying to convert Instant to NSDate. I have got incorrect NSDate (year converts incorrectly), instead of 2021 it converts to 2052, but day and month are correct. Used convertter https://github.com/Kotlin/kotlinx-datetime/blob/3af71d2e874592fc70282de441a09d024dcefb54/core/darwin/src/Converters.kt. Can anyone help to solve this problem or advice some workaround?

    bug waiting for clarification 
    opened by alednik 10
  • Normalize components in DateTimePeriod/DatePeriod

    Normalize components in DateTimePeriod/DatePeriod

    Currently we provide DateTimePeriod type as a bag of several independent components: years, months, days, hours, minutes, seconds, and nanosecodns. This approach leads to several problems:

    • when nanoseconds value exceeds the range [0..10^9), the ISO representation is rendered incorrectly (see #79)
    • there can be several non-equal values of DateTimePeriod that produce the same ISO string representation. Since we intend to use that string representation as the default serialized form for textual formats, it could lead to a situation when deserialized value would be not equal to what was serialized before.

    To avoid these problems we propose to do DateTimePeriod component normalization at construction time in the following way:

    • all time components, e.g. hours..nanoseconds are normalized to the single long total value of nanoseconds;
    • days component is stored as is;
    • years and months components are stored together as the total number of months.

    Note that this normalization only affects DateTimePeriod storage and internal representation. There shall still remain component properties that will derive values from the normalized internal state. For example, hours property will return the normalized number of nanoseconds divided by 3600 * 10^9, and months will return totalMonths % 12.

    This change will have the following consequences:

    • seconds and nanoseconds properties change their type from Long to Int. We may leave a secondary constructor with the long nanoseconds parameter for convenience, though.
    • it may be impossible to fit the difference between extreme dates, such as platform specific min and max dates, as an Int total number of months.
    • the time part of DateTimePeriod will be limited to the ±292 year range. This usually isn't a practical concern because the time part doesn't exceed 24H in most cases.
    enhancement 
    opened by ilya-g 9
  • KampKit dependency error on iOS - 'Can't find kotlinx-datetime-iosarm64'

    KampKit dependency error on iOS - 'Can't find kotlinx-datetime-iosarm64'

    @asarazan and I were not able to build on iOS for a kampkit project. Any idea how to resolve it? Much appreciated!

    Here are some of the error logs:

    REPO_ROOT="$PODS_TARGET_SRCROOT"
    "$REPO_ROOT/../gradlew" -p "$REPO_ROOT" :shared:syncFramework                     -Pkotlin.native.cocoapods.target=$KOTLIN_TARGET                     -Pkotlin.native.cocoapods.configuration=$CONFIGURATION                     -Pkotlin.native.cocoapods.cflags="$OTHER_CFLAGS"                     -Pkotlin.native.cocoapods.paths.headers="$HEADER_SEARCH_PATHS"                     -Pkotlin.native.cocoapods.paths.frameworks="$FRAMEWORK_SEARCH_PATHS"
    Starting a Gradle Daemon, 2 incompatible Daemons could not be reused, use --status for details
    > Task :buildSrc:compileKotlin UP-TO-DATE
    > Task :buildSrc:compileJava NO-SOURCE
    > Task :buildSrc:compileGroovy NO-SOURCE
    > Task :buildSrc:pluginDescriptors UP-TO-DATE
    > Task :buildSrc:processResources NO-SOURCE
    > Task :buildSrc:classes UP-TO-DATE
    > Task :buildSrc:inspectClassesForKotlinIC UP-TO-DATE
    > Task :buildSrc:jar UP-TO-DATE
    > Task :buildSrc:assemble UP-TO-DATE
    > Task :buildSrc:compileTestKotlin NO-SOURCE
    > Task :buildSrc:pluginUnderTestMetadata UP-TO-DATE
    > Task :buildSrc:compileTestJava NO-SOURCE
    > Task :buildSrc:compileTestGroovy NO-SOURCE
    > Task :buildSrc:processTestResources NO-SOURCE
    > Task :buildSrc:testClasses UP-TO-DATE
    > Task :buildSrc:test NO-SOURCE
    > Task :buildSrc:validateTaskProperties UP-TO-DATE
    > Task :buildSrc:check UP-TO-DATE
    > Task :buildSrc:build UP-TO-DATE
    
    > Configure project :shared
    Kotlin Multiplatform Projects are an experimental feature.
    
    > Task :shared:generateIosMainKaMPKitDbInterface UP-TO-DATE
    The message received from the daemon indicates that the daemon has disappeared.
    Build request sent: Build{id=269dc66a-5a83-490e-9fcb-d54ce0e56755, currentDir=/Users/benjaminlim/Desktop/gameface-kampkit/ios/Pods}
    Attempting to read last messages from the daemon log...
    Daemon pid: 21010
      log file: /Users/benjaminlim/.gradle/daemon/5.6.4/daemon-21010.out.log
    ----- Last  20 lines from daemon log file - daemon-21010.out.log -----
    10:15:17.009 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on daemon addresses registry.
    10:15:17.009 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
    10:15:17.011 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
    10:15:17.013 [DEBUG] [org.gradle.launcher.daemon.server.DaemonStateCoordinator] resetting idle timer
    10:15:17.014 [DEBUG] [org.gradle.launcher.daemon.server.DaemonStateCoordinator] daemon is running. Sleeping until state changes.
    10:15:17.014 [INFO] [org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy] Daemon is about to start building Build{id=269dc66a-5a83-490e-9fcb-d54ce0e56755, currentDir=/Users/benjaminlim/Desktop/gameface-kampkit/ios/Pods}. Dispatching build started information...
    10:15:17.014 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 19: dispatching class org.gradle.launcher.daemon.protocol.BuildStarted
    10:15:17.017 [DEBUG] [org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment] Configuring env variables: {PATH=/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/local/bin:/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/libexec:/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/usr/local/bin:/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/local/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin, LLBUILD_TASK_ID=512000a0002, LLBUILD_BUILD_ID=1851983122, DEBUGGING_SYMBOLS=YES, EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS=.DS_Store .svn .git .hg CVS, DEVELOPMENT_LANGUAGE=en, BUNDLE_FORMAT=shallow, SYSTEM_DEVELOPER_USR_DIR=/Applications/Xcode-beta.app/Contents/Developer/usr, BUILD_VARIANTS=normal, LIBRARY_FLAG_NOSPACE=YES, CODESIGNING_FOLDER_PATH=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Products/Debug-iphoneos/shared/, INSTALL_ROOT=/tmp/Pods.dst, DWARF_DSYM_FILE_NAME=.dSYM, ARCHS_UNIVERSAL_IPHONE_OS=armv7 arm64, TARGET_DEVICE_MODEL=iPhone12,1, JAVA_SOURCE_SUBDIR=., CLANG_WARN_CONSTANT_CONVERSION=YES, CURRENT_ARCH=undefined_arch, VALIDATE_WORKSPACE=YES_ERROR, LINKER_DISPLAYS_MANGLED_NAMES=NO, PASCAL_STRINGS=YES, CONFIGURATION=Debug, TARGET_DEVICE_OS_VERSION=13.5.1, DEFAULT_KEXT_INSTALL_PATH=/System/Library/Extensions, SCRIPT_INPUT_FILE_COUNT=0, SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD=YES, INSTALLHDRS_COPY_PHASE=NO, UID=501, SDK_DIR=/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk, SED=/usr/bin/sed, PODS_BUILD_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Products, DERIVED_SOURCES_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/DerivedSources, LOCAL_ADMIN_APPS_DIR=/Applications/Utilities, PODS_TARGET_SRCROOT=/Users/benjaminlim/Desktop/gameface-kampkit/ios/Pods/../../shared, DEPLOYMENT_TARGET_SUGGESTED_VALUES=9.0 9.1 9.2 9.3 10.0 10.1 10.2 10.3 11.0 11.1 11.2 11.3 11.4 12.0 12.1 12.2 12.3 12.4 13.0 13.1 13.2 13.3 13.4 13.5 14.0, USE_LLVM_TARGET_TRIPLES_FOR_CLANG=YES, PROFILING_CODE=NO, SYSTEM_KEXT_INSTALL_PATH=/System/Library/Extensions, BUILD_LIBRARY_FOR_DISTRIBUTION=NO, BUNDLE_FRAMEWORKS_FOLDER_PATH=Frameworks, APPLE_INTERNAL_DEVELOPER_DIR=/AppleInternal/Developer, COMPRESS_PNG_FILES=YES, LLVM_TARGET_TRIPLE_VENDOR=apple, BUILD_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Products, REMOVE_SVN_FROM_RESOURCES=YES, CONFIGURATION_BUILD_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Products/Debug-iphoneos/shared, PRECOMP_DESTINATION_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/PrefixHeaders, PROJECT_FILE_PATH=/Users/benjaminlim/Desktop/gameface-kampkit/ios/Pods/Pods.xcodeproj, LOCAL_DEVELOPER_DIR=/Library/Developer, APP_NAME_20985=Gradle, DEPLOYMENT_TARGET_CLANG_FLAG_NAME=miphoneos-version-min, SYSTEM_DEVELOPER_BIN_DIR=/Applications/Xcode-beta.app/Contents/Developer/usr/bin, OBJECT_FILE_DIR_normal=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/Objects-normal, CP=/bin/cp, STRIP_SWIFT_SYMBOLS=YES, ENABLE_PREVIEWS=NO, SYSTEM_DEVELOPER_PERFORMANCE_TOOLS_DIR=/Applications/Xcode-beta.app/Contents/Developer/Applications/Performance Tools, CONFIGURATION_TEMP_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos, CLASS_FILE_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/JavaClasses, com.apple.java.jvmTask=CommandLine, arch=undefined_arch, JAVA_ZIP_FLAGS=-urg, CODE_SIGN_IDENTITY=iPhone Developer, LOCALIZED_STRING_SWIFTUI_SUPPORT=YES, CLANG_WARN_STRICT_PROTOTYPES=YES, BUNDLE_PLUGINS_FOLDER_PATH=PlugIns, SYSTEM_DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer, VERBOSE_PBXCP=NO, GCC_VERSION_IDENTIFIER=com_apple_compilers_llvm_clang_1_0, CLANG_WARN_OBJC_ROOT_CLASS=YES_ERROR, ENABLE_TESTABILITY=YES, LOGNAME=benjaminlim, CURRENT_VARIANT=normal, SDK_DIR_iphoneos14_0=/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk, ENABLE_BITCODE=YES, APP_ICON_20985=/Users/benjaminlim/Desktop/gameface-kampkit/media/gradle.icns, TREAT_MISSING_BASELINES_AS_TEST_FAILURES=NO, HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS=YES, APPLE_INTERNAL_TOOLS=/AppleInternal/Developer/Tools, OLDPWD=/Users/benjaminlim/Desktop/gameface-kampkit, USE_LLVM_TARGET_TRIPLES_FOR_LD=YES, DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER=NO, ARCHS_STANDARD_32_64_BIT=armv7 arm64, COLOR_DIAGNOSTICS=NO, DEAD_CODE_STRIPPING=YES, CODE_SIGN_INJECT_BASE_ENTITLEMENTS=YES, KEEP_PRIVATE_EXTERNS=NO, SYSTEM_APPS_DIR=/Applications, SYSTEM_ADMIN_APPS_DIR=/Applications/Utilities, HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES=YES, __CF_USER_TEXT_ENCODING=0x1F5:0:15, BITCODE_GENERATION_MODE=marker, SHARED_DERIVED_FILE_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Products/Debug-iphoneos/shared/DerivedSources, METAL_LIBRARY_OUTPUT_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Products/Debug-iphoneos/shared/, GENERATE_TEXT_BASED_STUBS=NO, APPLY_RULES_IN_COPY_HEADERS=NO, JAVA_FRAMEWORK_RESOURCES_DIRS=Resources, SEPARATE_SYMBOL_EDIT=NO, ARCHS_STANDARD=armv7 arm64, CODE_SIGNING_ALLOWED=NO, GENERATE_MASTER_OBJECT_FILE=NO, USE_HEADERMAP=YES, TOOLCHAIN_DIR=/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain, ENABLE_ON_DEMAND_RESOURCES=NO, DEVELOPER_TOOLS_DIR=/Applications/Xcode-beta.app/Contents/Developer/Tools, UNSTRIPPED_PRODUCT=NO, FILE_LIST=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/Objects/LinkFileList, TARGET_TEMP_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build, SDK_VERSION_MINOR=000, GCC_OPTIMIZATION_LEVEL=0, PROJECT_DERIVED_FILE_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/DerivedSources, INLINE_PRIVATE_FRAMEWORKS=NO, ACTION=build, DEVELOPER_FRAMEWORKS_DIR_QUOTED=/Applications/Xcode-beta.app/Contents/Developer/Library/Frameworks, GCC_NO_COMMON_BLOCKS=YES, CODE_SIGNING_REQUIRED=YES, NATIVE_ARCH_64_BIT=x86_64, ARCHS_STANDARD_INCLUDING_64_BIT=armv7 arm64, CLANG_WARN_INT_CONVERSION=YES, HOME=/Users/benjaminlim, HEADERMAP_USES_VFS=NO, WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIES=NO, PRODUCT_SETTINGS_PATH=, PLATFORM_DEVELOPER_BIN_DIR=/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin, ARCHS=arm64, PLATFORM_DEVELOPER_APPLICATIONS_DIR=/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Applications, SDKROOT=/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk, STRIP_BITCODE_FROM_COPIED_FILES=YES, NATIVE_ARCH=armv7, HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT=YES, DEVELOPER_APPLICATIONS_DIR=/Applications/Xcode-beta.app/Contents/Developer/Applications, USER_LIBRARY_DIR=/Users/benjaminlim/Library, ARCHS_STANDARD_32_BIT=armv7, GCC_TREAT_WARNINGS_AS_ERRORS=NO, KOTLIN_TARGET=ios_arm, CLANG_WARN_OBJC_LITERAL_CONVERSION=YES, OSAC=/usr/bin/osacompile, DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer, XCODE_VERSION_MAJOR=1200, LOCSYMROOT=/Users/benjaminlim/Desktop/gameface-kampkit/ios/Pods, ALTERNATE_MODE=u+w,go-w,a+rX, XPCSERVICES_FOLDER_PATH=/XPCServices, XPC_FLAGS=0x0, MODULE_CACHE_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/ModuleCache.noindex, GCC_WARN_UNINITIALIZED_AUTOS=YES_AGGRESSIVE, SDK_NAMES=iphoneos14.0, BUNDLE_EXECUTABLE_FOLDER_NAME_deep=MacOS, CA_ASSERT_MAIN_THREAD_TRANSACTIONS=1, SHLVL=2, YACC=yacc, PLATFORM_NAME=iphoneos, DERIVED_FILE_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/DerivedSources, CLONE_HEADERS=NO, REMOVE_HG_FROM_RESOURCES=YES, GCC_WARN_64_TO_32_BIT_CONVERSION=YES, SKIP_INSTALL=YES, ONLY_ACTIVE_ARCH=YES, CORRESPONDING_SIMULATOR_SDK_DIR=/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.0.sdk, VERSION_INFO_BUILDER=benjaminlim, INFOPLIST_OUTPUT_FORMAT=binary, SCRIPT_INPUT_FILE_LIST_COUNT=0, COPY_PHASE_STRIP=NO, METAL_LIBRARY_FILE_BASE=default, SYSTEM_DEVELOPER_RELEASENOTES_DIR=/Applications/Xcode-beta.app/Contents/Developer/ADC Reference Library/releasenotes, LIBRARY_DEXT_INSTALL_PATH=/Library/DriverExtensions, CLANG_CXX_LIBRARY=libc++, VALID_ARCHS=arm64 arm64e armv7 armv7s, PLATFORM_DISPLAY_NAME=iOS, SYSTEM_LIBRARY_DIR=/System/Library, JAVA_JAR_FLAGS=cv, EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE=NO, MAC_OS_X_VERSION_MINOR=1505, GENERATE_PROFILING_CODE=NO, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS=YES, ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO, DEPLOYMENT_TARGET_CLANG_ENV_NAME=IPHONEOS_DEPLOYMENT_TARGET, JAVA_APP_STUB=/System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub, APPLE_INTERNAL_DIR=/AppleInternal, COMBINE_HIDPI_IMAGES=NO, XCODE_APP_SUPPORT_DIR=/Applications/Xcode-beta.app/Contents/Developer/Library/Xcode, INFOPLIST_EXPAND_BUILD_SETTINGS=YES, REZ_COLLECTOR_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/ResourceManagerResources, CLANG_WARN_DIRECT_OBJC_ISA_USAGE=YES_ERROR, MAC_OS_X_VERSION_ACTUAL=101505, SYSTEM_DEVELOPER_TOOLS_RELEASENOTES_DIR=/Applications/Xcode-beta.app/Contents/Developer/ADC Reference Library/releasenotes/DeveloperTools, CLEAN_PRECOMPS=YES, REMOVE_CVS_FROM_RESOURCES=YES, ALTERNATE_OWNER=benjaminlim, DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT=NO, DEPLOYMENT_POSTPROCESSING=NO, GCC_WARN_ABOUT_RETURN_TYPE=YES_ERROR, COPY_HEADERS_RUN_UNIFDEF=NO, SWIFT_PLATFORM_TARGET_PREFIX=ios, PLATFORM_DEVELOPER_TOOLS_DIR=/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Tools, GCC_DYNAMIC_NO_PIC=NO, SYSTEM_DEVELOPER_DOC_DIR=/Applications/Xcode-beta.app/Contents/Developer/ADC Reference Library, ENABLE_STRICT_OBJC_MSGSEND=YES, SYSTEM_DEXT_INSTALL_PATH=/System/Library/DriverExtensions, LD_NO_PIE=NO, ENABLE_TESTING_SEARCH_PATHS=NO, PRODUCT_BUNDLE_IDENTIFIER=org.cocoapods.shared, TARGET_NAME=shared, SDK_PRODUCT_BUILD_VERSION=18A5332e, SWIFT_OPTIMIZATION_LEVEL=-Onone, LEGACY_DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer, JAVA_ARCHIVE_CLASSES=YES, CREATE_INFOPLIST_SECTION_IN_BINARY=NO, FIXED_FILES_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/FixedFiles, ALTERNATE_GROUP=staff, CLANG_WARN__DUPLICATE_METHOD_MATCH=YES, NO_COMMON=YES, GCC_PFE_FILE_C_DIALECTS=c objective-c c++ objective-c++, LD_RUNPATH_SEARCH_PATHS= @executable_path/Frameworks, REZ_OBJECTS_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/ResourceManagerResources/Objects, USE_LLVM_TARGET_TRIPLES_FOR_TAPI=YES, PODS_CONFIGURATION_BUILD_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Products/Debug-iphoneos, GCC_THUMB_SUPPORT=YES, COPYING_PRESERVES_HFS_DATA=NO, JAVA_ARCH=x86_64, LOCAL_LIBRARY_DIR=/Library, MTL_FAST_MATH=YES, FRAMEWORK_SEARCH_PATHS= "/Users/benjaminlim/Desktop/gameface-kampkit/ios/Pods/../../shared/build/cocoapods/framework", CLANG_CXX_LANGUAGE_STANDARD=gnu++14, BUILD_STYLE=, STRINGS_FILE_OUTPUT_ENCODING=binary, PLATFORM_DIR=/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform, TEMP_FILES_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build, OBJROOT=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex, LINK_WITH_STANDARD_LIBRARIES=YES, CLANG_MODULES_BUILD_SESSION_FILE=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation, TARGET_DEVICE_IDENTIFIER=00008030-000958140E43802E, OS=MACOS, INFOPLIST_PREPROCESS=NO, VALIDATE_DEVELOPMENT_ASSET_PATHS=YES_ERROR, LLBUILD_LANE_ID=10, ASSETCATALOG_FILTER_FOR_DEVICE_MODEL=iPhone12,1, GCC_C_LANGUAGE_STANDARD=gnu11, HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES=YES, XCODE_VERSION_ACTUAL=1200, TEST_LIBRARY_SEARCH_PATHS= /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib, SYSTEM_DOCUMENTATION_DIR=/Library/Documentation, LOCAL_APPS_DIR=/Applications, LEX=lex, JAVA_ARCHIVE_TYPE=JAR, LIBRARY_KEXT_INSTALL_PATH=/Library/Extensions, TARGET_BUILD_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Products/Debug-iphoneos/shared, TAPI_VERIFY_MODE=ErrorsOnly, CORRESPONDING_SIMULATOR_PLATFORM_NAME=iphonesimulator, PRESERVE_DEAD_CODE_INITS_AND_TERMS=NO, OTHER_LDFLAGS= -l"c++", ENABLE_DEFAULT_HEADER_SEARCH_PATHS=YES, APPLY_RULES_IN_COPY_FILES=NO, USE_LLVM_TARGET_TRIPLES=YES, CORRESPONDING_SIMULATOR_SDK_NAME=iphonesimulator14.0, INSTALL_OWNER=benjaminlim, PLATFORM_DEVELOPER_SDK_DIR=/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs, GCC_WARN_UNUSED_VARIABLE=YES, DT_TOOLCHAIN_DIR=/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain, TARGETED_DEVICE_FAMILY=1,2, APPLE_INTERNAL_DOCUMENTATION_DIR=/AppleInternal/Documentation, CLANG_WARN_INFINITE_RECURSION=YES, BUNDLE_CONTENTS_FOLDER_PATH_deep=Contents/, USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES=YES, SHALLOW_BUNDLE=NO, PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR=YES, TEST_FRAMEWORK_SEARCH_PATHS= /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/Developer/Library/Frameworks, SUPPORTED_DEVICE_FAMILIES=1,2, PROJECT_DIR=/Users/benjaminlim/Desktop/gameface-kampkit/ios/Pods, VERSION_INFO_FILE=shared_vers.c, SYSTEM_DEVELOPER_UTILITIES_DIR=/Applications/Xcode-beta.app/Contents/Developer/Applications/Utilities, LINK_FILE_LIST_normal_arm64=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/Objects-normal/arm64/shared.LinkFileList, GROUP=staff, SYSTEM_DEVELOPER_JAVA_TOOLS_DIR=/Applications/Xcode-beta.app/Contents/Developer/Applications/Java Tools, GCC_WARN_UNDECLARED_SELECTOR=YES, EFFECTIVE_PLATFORM_NAME=-iphoneos, PER_ARCH_OBJECT_FILE_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/Objects-normal/undefined_arch, ENABLE_HEADER_DEPENDENCIES=YES, JAVAC_DEFAULT_FLAGS=-J-Xms64m -J-XX:NewSize=4M -J-Dfile.encoding=UTF8, ASSETCATALOG_COMPILER_APPICON_NAME=AppIcon, USE_DYNAMIC_NO_PIC=YES, TARGETNAME=shared, TEMP_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build, DEVELOPER_SDK_DIR=/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs, LOCALIZED_STRING_MACRO_NAMES=NSLocalizedString CFCopyLocalizedString, CCHROOT=/var/folders/8q/7x399f1924g4hq82xs2kzb1r0000gn/C/com.apple.DeveloperTools/12.0-12A8169g/Xcode, VERSION_INFO_STRING="@(#)PROGRAM:shared  PROJECT:Pods-", INSTALL_MODE_FLAG=u+w,go-w,a+rX, GCC_PREPROCESSOR_DEFINITIONS=POD_CONFIGURATION_DEBUG=1 DEBUG=1  COCOAPODS=1, CLANG_WARN_ENUM_CONVERSION=YES, SCRIPT_OUTPUT_FILE_LIST_COUNT=0, BUILD_ROOT=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Products, CLANG_WARN_BOOL_CONVERSION=YES, CLANG_WARN_SUSPICIOUS_MOVE=YES, SYSTEM_DEVELOPER_APPS_DIR=/Applications/Xcode-beta.app/Contents/Developer/Applications, variant=normal, DEFAULT_DEXT_INSTALL_PATH=/System/Library/DriverExtensions, CLANG_WARN_NON_LITERAL_NULL_CONVERSION=YES, CLANG_ENABLE_OBJC_WEAK=YES, PROJECT=Pods, SHELL=/bin/zsh, REMOVE_GIT_FROM_RESOURCES=YES, DEVELOPER_USR_DIR=/Applications/Xcode-beta.app/Contents/Developer/usr, MTL_ENABLE_DEBUG_INFO=INCLUDE_SOURCE, PLATFORM_PREFERRED_ARCH=arm64, ENABLE_HARDENED_RUNTIME=NO, DEFINES_MODULE=NO, SYSTEM_CORE_SERVICES_DIR=/System/Library/CoreServices, LLVM_TARGET_TRIPLE_OS_VERSION=ios8.0, PLATFORM_FAMILY_NAME=iOS, CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING=YES, AVAILABLE_PLATFORMS=appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator, OBJECT_FILE_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/Objects, SUPPORTED_PLATFORMS=iphoneos iphonesimulator, SRCROOT=/Users/benjaminlim/Desktop/gameface-kampkit/ios/Pods, REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES=YES, PLATFORM_DEVELOPER_USR_DIR=/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr, TEMP_FILE_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build, DEBUG_INFORMATION_FORMAT=dwarf, ALWAYS_USE_SEPARATE_HEADERMAPS=NO, GCC_WARN_UNUSED_FUNCTION=YES, HEADERMAP_INCLUDES_PROJECT_HEADERS=YES, DONT_GENERATE_INFOPLIST_FILE=NO, ICONV=/usr/bin/iconv, DEPLOYMENT_LOCATION=NO, XPC_SERVICE_NAME=0, CLANG_ENABLE_MODULES=YES, USE_HEADER_SYMLINKS=NO, SYMROOT=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Products, INSTALL_GROUP=staff, RECURSIVE_SEARCH_PATHS_FOLLOW_SYMLINKS=YES, SUPPORTS_TEXT_BASED_API=NO, APPLE_INTERNAL_LIBRARY_DIR=/AppleInternal/Library, LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER=YES, GCC3_VERSION=3.3, DEPLOYMENT_TARGET_LD_FLAG_NAME=ios_version_min, GENERATE_PKGINFO_FILE=NO, INSTALLHDRS_SCRIPT_PHASE=NO, LOCROOT=/Users/benjaminlim/Desktop/gameface-kampkit/ios/Pods, LD_GENERATE_MAP_FILE=NO, DEVELOPER_FRAMEWORKS_DIR=/Applications/Xcode-beta.app/Contents/Developer/Library/Frameworks, VALIDATE_PRODUCT=NO, SHARED_PRECOMPS_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/PrecompiledHeaders, ENTITLEMENTS_REQUIRED=YES, SDK_VERSION_MAJOR=140000, SET_DIR_MODE_OWNER_GROUP=YES, DO_HEADER_SCANNING_IN_JAM=NO, SDK_NAME=iphoneos14.0, NATIVE_ARCH_32_BIT=i386, PWD=/Users/benjaminlim/Desktop/gameface-kampkit/ios/Pods, USER_APPS_DIR=/Users/benjaminlim/Applications, TOOLCHAINS=com.apple.dt.toolchain.XcodeDefault, XCODE_VERSION_MINOR=1200, IPHONEOS_DEPLOYMENT_TARGET=8.0, PER_VARIANT_OBJECT_FILE_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/Objects-normal, CORRESPONDING_SIMULATOR_PLATFORM_DIR=/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform, TEMP_ROOT=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex, KASAN_DEFAULT_CFLAGS=-DKASAN=1 -fsanitize=address -mllvm -asan-globals-live-support -mllvm -asan-force-dynamic-shadow, SCRIPT_OUTPUT_FILE_COUNT=0, EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES=*.nib *.lproj *.framework *.gch *.xcode* *.xcassets (*) .DS_Store CVS .svn .git .hg *.pbproj *.pbxproj, PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES=/usr/include /usr/local/include /System/Library/Frameworks /System/Library/PrivateFrameworks /Applications/Xcode-beta.app/Contents/Developer/Headers /Applications/Xcode-beta.app/Contents/Developer/SDKs /Applications/Xcode-beta.app/Contents/Developer/Platforms, CHOWN=/usr/sbin/chown, CLANG_WARN_COMMA=YES, DEVELOPER_LIBRARY_DIR=/Applications/Xcode-beta.app/Contents/Developer/Library, COMPOSITE_SDK_DIRS=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/CompositeSDKs, CLANG_WARN_UNREACHABLE_CODE=YES, CLANG_ANALYZER_NONNULL=YES, SYSTEM_DEVELOPER_TOOLS_DOC_DIR=/Applications/Xcode-beta.app/Contents/Developer/ADC Reference Library/documentation/DeveloperTools, COPY_RESOURCES_FROM_STATIC_FRAMEWORKS=YES, BUILD_COMPONENTS=headers build, MallocNanoZone=0, BUNDLE_PUBLIC_HEADERS_FOLDER_PATH=Headers, DEVELOPER_BIN_DIR=/Applications/Xcode-beta.app/Contents/Developer/usr/bin, MAC_OS_X_VERSION_MAJOR=101500, APPLICATION_EXTENSION_API_ONLY=NO, CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION=YES_AGGRESSIVE, CLANG_WARN_DOCUMENTATION_COMMENTS=YES, PROJECT_TEMP_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build, PLATFORM_PRODUCT_BUILD_VERSION=18A5332e, CLANG_WARN_EMPTY_BODY=YES, DERIVED_FILES_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/DerivedSources, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF=YES, DEPLOYMENT_TARGET_CLANG_FLAG_PREFIX=-miphoneos-version-min=, SCAN_ALL_SOURCE_FILES_FOR_INCLUDES=NO, AD_HOC_CODE_SIGNING_ALLOWED=NO, CA_DEBUG_TRANSACTIONS=1, STRIP_INSTALLED_PRODUCT=NO, CODE_SIGN_CONTEXT_CLASS=XCiPhoneOSCodeSignContext, DEPLOYMENT_TARGET_LD_ENV_NAME=IPHONEOS_DEPLOYMENT_TARGET, SYSTEM_DEVELOPER_TOOLS=/Applications/Xcode-beta.app/Contents/Developer/Tools, SYSTEM_DEMOS_DIR=/Applications/Extras, MAC_OS_X_PRODUCT_BUILD_VERSION=19F101, INSTALL_DIR=/tmp/Pods.dst, SWIFT_VERSION=5.0, ENTITLEMENTS_DESTINATION=Signature, BUILT_PRODUCTS_DIR=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Products/Debug-iphoneos/shared, SOURCE_ROOT=/Users/benjaminlim/Desktop/gameface-kampkit/ios/Pods, CLANG_ENABLE_OBJC_ARC=YES, CHMOD=/bin/chmod, JIKES_DEFAULT_FLAGS=+E +OLDCSO, EMBEDDED_PROFILE_NAME=embedded.mobileprovision, SUPPORTS_MACCATALYST=YES, SDK_VERSION=14.0, DSTROOT=/tmp/Pods.dst, ARCHS_STANDARD_64_BIT=arm64, PROJECT_TEMP_ROOT=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex, STRIP_STYLE=all, BUILD_ACTIVE_RESOURCES_ONLY=YES, GID=20, SET_FILE_MODE_OWNER_GROUP=NO, JAVA_MAIN_CLASS_20985=org.gradle.wrapper.GradleWrapperMain, NATIVE_ARCH_ACTUAL=x86_64, SEPARATE_STRIP=NO, EMBEDDED_CONTENT_CONTAINS_SWIFT=NO, PRODUCT_NAME=shared, PLATFORM_DEVELOPER_LIBRARY_DIR=/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library, TMPDIR=/var/folders/8q/7x399f1924g4hq82xs2kzb1r0000gn/T/, SYSTEM_DEVELOPER_DEMOS_DIR=/Applications/Xcode-beta.app/Contents/Developer/Applications/Utilities/Built Examples, PODS_ROOT=/Users/benjaminlim/Desktop/gameface-kampkit/ios/Pods, ASSETCATALOG_FILTER_FOR_DEVICE_OS_VERSION=13.5.1, LD_MAP_FILE_PATH=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/shared-LinkMap-normal-undefined_arch.txt, GCC_VERSION=com.apple.compilers.llvm.clang.1_0, PKGINFO_FILE_PATH=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/PkgInfo, JAVA_USE_DEPENDENCIES=YES, SWIFT_ACTIVE_COMPILATION_CONDITIONS=DEBUG, COMPILER_INDEX_STORE_ENABLE=Default, SYSTEM_DEVELOPER_GRAPHICS_TOOLS_DIR=/Applications/Xcode-beta.app/Contents/Developer/Applications/Graphics Tools, DWARF_DSYM_FOLDER_PATH=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Products/Debug-iphoneos/shared, PROJECT_NAME=Pods, HIDE_BITCODE_SYMBOLS=YES, DEPLOYMENT_TARGET_SETTING_NAME=IPHONEOS_DEPLOYMENT_TARGET, ALWAYS_SEARCH_USER_PATHS=NO, LD_DEPENDENCY_INFO_FILE=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/Objects-normal/undefined_arch/shared_dependency_info.dat, PLIST_FILE_OUTPUT_FORMAT=binary, PRODUCT_MODULE_NAME=shared, JAVA_COMPILER=/usr/bin/javac, DEFAULT_COMPILER=com.apple.compilers.llvm.clang.1_0, FRAMEWORK_VERSION=A, SDK_VERSION_ACTUAL=140000, USER=benjaminlim, CLANG_WARN_UNGUARDED_AVAILABILITY=YES_AGGRESSIVE, SWIFT_RESPONSE_FILE_PATH_normal_arm64=/Users/benjaminlim/Library/Developer/Xcode/DerivedData/KaMPKitiOS-czccbxoiggfeplculcfguxucvfdv/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/shared.build/Objects-normal/arm64/shared.SwiftFileList, SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.F4QgEU3E5a/Listeners, XCODE_PRODUCT_BUILD_VERSION=12A8169g, CLANG_WARN_RANGE_LOOP_ANALYSIS=YES, CACHE_ROOT=/var/folders/8q/7x399f1924g4hq82xs2kzb1r0000gn/C/com.apple.DeveloperTools/12.0-12A8169g/Xcode, BUNDLE_PRIVATE_HEADERS_FOLDER_PATH=PrivateHeaders}
    10:15:17.018 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 17: received class org.gradle.launcher.daemon.protocol.CloseInput
    10:15:17.018 [DEBUG] [org.gradle.launcher.daemon.server.DefaultDaemonConnection] thread 17: Received IO message from client: org.gradle.launcher.daemon.protocol.CloseInput@203dc6e5
    10:15:17.026 [DEBUG] [org.gradle.launcher.daemon.server.exec.LogToClient] About to start relaying all logs to the client via the connection.
    10:15:17.026 [INFO] [org.gradle.launcher.daemon.server.exec.LogToClient] The client will now receive all logging from the daemon (pid: 21010). The daemon log file: /Users/benjaminlim/.gradle/daemon/5.6.4/daemon-21010.out.log
    10:15:17.027 [INFO] [org.gradle.launcher.daemon.server.exec.LogAndCheckHealth] Starting build in new daemon [memory: 1.4 GB]
    10:15:17.028 [INFO] [org.gradle.launcher.daemon.server.exec.ForwardClientInput] Closing daemon's stdin at end of input.
    10:15:17.028 [INFO] [org.gradle.launcher.daemon.server.exec.ForwardClientInput] The daemon will no longer process any standard input.
    10:15:17.031 [DEBUG] [org.gradle.launcher.daemon.server.exec.ExecuteBuild] The daemon has started executing the build.
    10:15:17.032 [DEBUG] [org.gradle.launcher.daemon.server.exec.ExecuteBuild] Executing build with daemon context: DefaultDaemonContext[uid=b057873f-4c43-4a55-9b45-3416bc747aa8,javaHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home,daemonRegistryDir=/Users/benjaminlim/.gradle/daemon,pid=21010,idleTimeout=10800000,priority=NORMAL,daemonOpts=-Xmx1536m,-Dfile.encoding=UTF-8,-Duser.country=AU,-Duser.language=en,-Duser.variant]
    Kotlin Multiplatform Projects are an experimental feature.
    e: Could not find "/Users/benjaminlim/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-datetime-iosarm64/0.1.0/f56a0f1b22d3be80644aaf5f6de94fc17efc097d/kotlinx-datetime.klib" in [/Users/benjaminlim/Desktop/gameface-kampkit/ios/Pods, /Users/benjaminlim/.konan/klib, /Users/benjaminlim/.konan/kotlin-native-macos-1.3.72/klib/common, /Users/benjaminlim/.konan/kotlin-native-macos-1.3.72/klib/platform/ios_arm64].
    Daemon vm is shutting down... The daemon has exited normally or was terminated in response to a user interrupt.
    ----- End of the daemon log -----
    
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    > Task :shared:compileKotlinIos
    Command PhaseScriptExecution failed with a nonzero exit code
    
    
    opened by benjalimm 9
  • Copy method

    Copy method

    Hi, Sometimes, I need copy method like data class copy. I couldn't find any copy method. So, I created a new method for copy. But, I would expect this to be in the standard library.

    I'm curious about your thoughts on this subject.

    fun LocalTime.copy(
        hour: Int? = null,
        minute: Int? = null,
        second: Int? = null,
        nanoSeconds: Int? = null,
    ) = LocalTime(
        hour = hour ?: this.hour,
        minute = minute ?: this.minute,
        second = second ?: this.second,
        nanosecond = nanoSeconds ?: this.nanosecond
    )
    
    opened by enciyo 8
  • TimeZone of UTC+5:30

    TimeZone of UTC+5:30

    val localDateTime = Clock.System.now().toLocalDateTime(TimeZone.of("UTC+5:30")) above code is not working I try to use +5:30 but work fine if I used +5. How can I fetch time for +5:30 GMT?

    error I received:

    Uncaught Kotlin exception: kotlinx.datetime.IllegalTimeZoneException: Invalid ID for ZoneOffset, non numeric characters found: +5:30

    opened by sshikalgar 8
  • Cannot access class 'kotlinx.datetime.Instant'. Check your module classpath for missing or conflicting dependencies

    Cannot access class 'kotlinx.datetime.Instant'. Check your module classpath for missing or conflicting dependencies

    I updated a bunch of dependencies in my multiplatform App project (Kotlin to 1.6.20, KotlinxSerialization to 1.3.2, ...) and after it the Android app started to have the problem: Cannot access class 'kotlinx.datetime.Instant'. Check your module classpath for missing or conflicting dependencies This error message is from Android Studio - I also updated Android Studio.

    Strange enough it does compile ok for the iOS App with gradle createXCFramework. But my test scheme in xCode also doesn't find the Instant Kotlin class anymore.

    I wonder if this is only me or if anyone else has experienced this?

    opened by dusiema 7
  • Clock.System.now() fails on Android SDK less than 26

    Clock.System.now() fails on Android SDK less than 26

    Hi! Call of Clock.System.now() fails with java.lang.NoClassDefFoundError: kotlinx.datetime.Instant() on Android 7 and earlier because Instant() was added to SDK in version 26.

    Should I provide platform-specific implementation instead?

    opened by dekar91 7
  • UtcOffset.parse inconsistency

    UtcOffset.parse inconsistency

    With version 0.4.0, this passes

    val x = UtcOffset.parse("+4")
    val y = UtcOffset.parse("+04")
    assertEquals(x, y)
    

    This fails

    val a = UtcOffset.parse("+4:00")
    val b = UtcOffset.parse("+04:00")
    assertEquals(a, b)
    

    My understanding of the standard is that +4 should be invalid, but I care more that the parsing is consistent.

    formatters 
    opened by silverhammermba 3
  • Parse ISO8601 date/times without punctuation

    Parse ISO8601 date/times without punctuation

    It looks like parsing only works if the string contains - and : characters, but these are actually optional in ISO8601.

    For example, this local date/time should parse fine, but doesn't: LocalDateTime.parse("20221025T0600")

    formatters 
    opened by brianguertin 1
  • Update gradle wrapper and specify distribution sha256

    Update gradle wrapper and specify distribution sha256

    The result of executing gradlew wrapper command with the current Gradle version. I've also checked that the wrapper.jar checksum matches the official one for 7.5.1: https://gradle.org/release-checksums/

    opened by ilya-g 5
  • Add an equivalent of TemporalAdjusters

    Add an equivalent of TemporalAdjusters

    TemporalAdjusters are a useful family of classes in thejava.time library They allow to change a specific field value of a datetime according to a specific pattern commonly used by humans, avoiding the complications of the computation of such a value.

    Common use cases (basically th list of adjusters from java.time):

    • Getting a date, but with the day of month set to the first one
    • Getting a date with day of month set to a last one in the current month
    • In the same fashion, first day of next month
    • First day of next / previous year / week
    • returning a date, with the day set to a specific number of a given day of week. For example "second tuesday of March"
    • Getting a date with the next given day of week (whatever date that day of week would result in) E.g., next monday will result in a wrap of the day of week if you call this on "tuesday" date, adding total 6 days to the date.
    • Getting a date with previous day of week of a given value

    My personal use case is this: I want to set an alarm that fires on given days of week each week, and each time an alarm is fired, I schedule an alarm for the next day of week that alarm is enabled on. I want to get the next date for my specific day of week to trigger the next alarm.

    I propose implementing these as extension functions on LocalDate / LocalDateTime

    opened by Nek-12 9
  • Feature Request: truncateTo for LocalTime

    Feature Request: truncateTo for LocalTime

    When I was learning Kotlin, I made a JVM application that utilized the java.time.LocalTime class a lot, and it was convenient to use the truncateTo() method to only have hours and minutes. I'm now rewriting the application in Kotlin Native to get even more experience with the language, and I'm learning that to shave off seconds, I need to have an extra variable to truncate a LocalTime:

    /**
     * The current system time, with seconds and nanoseconds
     */
    private val untrimmedNow: LocalTime = Clock.System.now()
            .toLocalDateTime(TimeZone.currentSystemDefault()).time
    
    /**
     * The current system time without seconds.
     */
    val NOW: LocalTime = LocalTime(untrimmedNow.hour, untrimmedNow.minute)
    

    While this works, I'd much rather only have to add one more line, something like .truncateTo(DateTimeUnit.SECOND).

    formatters 
    opened by Stephen-Hamilton-C 3
Releases(v0.4.0)
  • v0.4.0(Jun 25, 2022)

    • Add the LocalTime class for representing time-of-day (#57). Thank you, @bishiboosh!
    • Provide LocalTime#toSecondOfDay, LocalTime.fromSecondOfDay, and various other functions for compact representation of LocalTime (#204). Thank you, @vanniktech!
    • Provide LocalDate#toEpochDays, LocalDate.fromEpochDays for representing a LocalDate as a single number (#214).
    • Rename Clock.todayAt to Clock.todayIn for naming consistency (#206).
    • Update the Kotlin dependency to 1.7.0.
    Source code(tar.gz)
    Source code(zip)
  • v0.3.3(May 4, 2022)

  • v0.3.2(Jan 11, 2022)

    Features

    • Update Kotlin dependency to 1.6.0 and remove ExperimentalTime from API involving Duration which became stable (#156)
    • Add an explicit module-info descriptor to JVM variant of the library (#135)
    • kotlinx.datetime.Instant conversions to and from JS Date (#170).
    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(Oct 27, 2021)

  • v0.3.0(Sep 27, 2021)

    Features

    • Added iosSimulatorArm64, watchosSimulatorArm64, tvosSimulatorArm64, macosArm64 target support (141, 144).

    Changes

    • ZoneOffset was replaced by two other classes: FixedOffsetTimeZone, which represents a time zone with a fixed offset, and UtcOffset, which represents just the UTC offset (PR#125).
    • The DayBased and MonthBased subclasses of DateTimeUnit.DateBased are now accessed as DateTimeUnit.DayBased and DateTimeUnit.MonthBased as opposed to DateTimeUnit.DateBased.DayBased and DateTimeUnit.DateBased.MonthBased respectively (PR#131).
    Source code(tar.gz)
    Source code(zip)
  • v0.2.1(May 26, 2021)

    Fixes

    • Fixed the library being incompatible with kotlinx.serialization 1.2.0 and above (#118).

    Features

    • watchosX64 target support. In practice, this means the ability to run projects that depend on this library in the iOS Simulator for Apple Watch.
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Apr 27, 2021)

    Fixes

    • Fix TimeZone.currentSystemDefault() crashing on Darwin if the resulting time zone is not listed among TimeZone.knownTimeZoneIdentifiers (#94)

    Features

    • kotlinx-serialization support (#37)
    • Normalization of DateTimePeriod components, meaning that periods that are semantically equivalent are considered equal (#81)
    • Instant can now be parsed from an ISO-8601 string with an offset other than Z (#56)
    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Nov 25, 2020)

    Fixes

    • Fix a crash when getting the current time on iOS 9 (#52)
    • Wrong answers in some cases when adding date-based units to instants on Darwin and Windows (#51)

    Features

    • Zone-agnostic time-based arithmetic on Instants, e.g. Instant.plus(value, DateTimeUnit.TimeBased)
    • Add Instant.fromEpochSeconds(epochSeconds: Long, nanosecondAdjustment: Int) construction function
    • Introduce minus operations complementary to existing plus arithmetic operations (#42)
    Source code(tar.gz)
    Source code(zip)
  • v0.1(Aug 13, 2020)

Owner
Kotlin
Kotlin Tools and Libraries
Kotlin
Multiplatform Date and time library for Kotlin

Klock is a Date & Time library for Multiplatform Kotlin. It is designed to be as allocation-free as possible using Kotlin inline classes, to be consis

null 681 Dec 19, 2022
Asimov-time-kt - Useful time and date related functions and extensions

asimov/time Useful time and date related functions and extensions. Installation

Nicolas Bottarini 1 Jan 7, 2022
Android NTP time library. Get the true current time impervious to device clock time changes

TrueTime for Android Make sure to check out our counterpart too: TrueTime, an NTP library for Swift. NTP client for Android. Calculate the date and ti

Instacart 1.3k Jan 4, 2023
A material-styled android view that provisions picking of a date, time & recurrence option, all from a single user-interface.

SublimePicker A customizable view that provisions picking of a date, time & recurrence option, all from a single user-interface. You can also view 'Su

Vikram 2.3k Jan 4, 2023
Pick a date or time on Android in style

Material DateTime Picker - Select a time/date in style Material DateTime Picker tries to offer you the date and time pickers as shown in the Material

null 4.7k Dec 29, 2022
Kotest property test arbs for kotlinx.datetime

kotest-property-datetime Kotest property arbs for kotlinx.datetime See docs. Please create issues on the main kotest board. Changelog 1.0.0 Updated da

Kotest 1 Dec 20, 2021
Standalone Android widget for picking a single date from a calendar view.

TimesSquare for Android Standalone Android widget for picking a single date from a calendar view. Usage Include CalendarPickerView in your layout XML.

Square 4.4k Dec 20, 2022
Compose Date Picker - Select month and year

Android DatePicker with month and year build with Compose UI

Doğuş Teknoloji 47 Dec 15, 2022
A simple Cupcake Ordering App, choose flavor, pickup on a date, get order summary and send order via any other app.

Cupcake app This app contains an order flow for cupcakes with options for quantity, flavor, and pickup date. The order details get displayed on an ord

Akshat Khandelwal 0 Dec 23, 2021
MinutesAliveApp - Basic Android App that ask for your date of birth and shows your age in minutes

MinutesAliveApp Basic Android App that ask for your date of birth and shows your

JestorDev 0 Jan 30, 2022
Joda-Time library with Android specialization

Android has built-in date and time handling - why bother with a library? If you've worked with Java's Date and Calendar classes you can probably answer this question yourself, but if not, check out Joda-Time's list of benefits.

Daniel Lew 2.6k Dec 9, 2022
java.time Kotlin extension functions library.

Java Time Kotlin extension functions. Background Java Time became integrated to the JDK as of Java 8. It was a huge improvement over its Date predeces

Sami Eljabali 31 Mar 15, 2022
A Kotlin Multiplatform library for working with dates and times

Island Time A Kotlin Multiplatform library for working with dates and times, heavily inspired by the java.time library. Features: A full set of date-t

Erik Christensen 71 Dec 28, 2022
Kmpcalendar - A calendar library and views written for kotlin multiplatform

KMPCalendarView Minimal Kotlin Multiplatform project with SwiftUI, Jetpack Compo

Anmol Verma 2 Oct 7, 2022
Estimated Time of Arrival Bar

Estimated Time of Arrival Bar

Tek 1 Mar 12, 2022
Asimov-flagz-kt - Feature flags library based on Togglz library

Asimov Flagz Feature flags library based on Togglz library. Installation Gradle

Nicolas Bottarini 1 Jan 8, 2022
Android library for better Picker DialogFragments

DialogFragments modeled after the AOSP Clock and Calendar apps to improve UX for picking time, date, numbers, and other things.

Code-Troopers 2.7k Dec 29, 2022
Android Week View is an android library to display calendars (week view or day view) within the app. It supports custom styling.

Android Week View Android Week View is an android library to display calendars (week view or day view) within the app. It supports custom styling. Fea

Raquib-ul Alam (Kanak) 3.4k Jan 3, 2023
An android library which provides a compact calendar view much like the one used in google calenders.

CompactCalendarView CompactCalendarView is a simple calendar view which provides scrolling between months. It's based on Java's Date and Calendar clas

SundeepK 1.5k Jan 7, 2023