# Date Provider

Capture SDK annotates each of the emitted logs with a timestamp.

By default, the Capture `Logger` queries the current time using system provided APIs - `Date()` in Kotlin/Swift.

A custom `DateProvider` instance can be provided at the `Logger` start time for cases when another time source is desirable (e.g., you have NTP time source in your app that you want to use for logs emitted by Capture too).

=== "Android (kotlin)"

    ```kotlin
    class CustomDateProvider : DateProvider {
      override fun invoke(): Date {
        return Date() // Replace with your own time source.
      }
    }

    Logger.start(
      // ...
      dateProvider = CustomDateProvider(),
    )
    ```

=== "Android (Java)"

    ```java
    class CustomDateProvider implements DateProvider {
      @Override
      public Date invoke() {
        return new Date(); //Replace with your own time source.
      }
    }

    Logger.start(
      // ...
      new CustomDateProvider() //dateProvider
    );
    ```

=== "iOS (Swift)"

    ```swift
    final class CustomDateProvider: DateProvider {
      func getDate() -> Date {
        return Date()
      }
    }

    Logger.start(
      // ...
      dateProvider: CustomDateProvider(),
    )
    ```
