克诺斯 4.3.0

克诺斯 4.3.0

测试已测试
Lang语言 SwiftSwift
许可证 Apache-2.0
发布最后发布2024年5月
SPM支持SPM

Martin Conte Mac DonellKeith Smiley 维护。



克诺斯 4.3.0

  • 作者
  • Martin Conte Mac Donell

克诺斯是一个用Swift编写的NTP客户端库。它支持亚秒级精度并提供一个稳定的单调时钟,不会被时钟变化所影响。

示例应用

这个示例应用演示了如何在左侧显示单调的Clock.now,在右侧显示系统时钟(最初是过时的)。

ascii-clock

使用方法

使用一组NTP服务器同步时钟

调用 Clock.sync 将向指定 NTP 池中的最多 5 个服务器发送大量 NTP 请求(默认为 time.apple.com)。一旦收到第一个响应,就会调用给定的闭包,但 Clock 仍会尝试获取更精确的响应。

Clock.sync { date, offset in
    // This is the first sync (note that this is the fastest but not the
    // most accurate run
    print(date)
}

获取一个 NTP 同步的日期

Clock.now 是一个单调的 NSDate,不会受到时钟变化的影响。

NSTimer.scheduledTimerWithTimeInterval(1.0, target: self,
                                       selector: #selector(Example.tick),
                                       userInfo: nil, repeats: true)

@objc func tick() {
    print(Clock.now) // Note that this clock will get more accurate as
                     // more NTP servers respond.
}

安装

CocoaPods

将 Kratos 添加到您的 Podfile

pod 'Kronos'

Swift Package Manager

将 Kratos 添加到您的 Package.swift

.package(name: "Kronos", url: "https://github.com/MobileNativeFoundation/Kronos.git", .upToNextMajor(from: "TAG")),

Bazel

将 Kratos 添加到您的 WORKSPACE

http_archive(
    name = "Kronos",
    sha256 = "",
    strip_prefix = "Kronos-TAG/",
    url = "https://github.com/MobileNativeFoundation/Kronos/archive/TAG.tar.gz",
)

然后依赖于 @Kronos//:Kronos

Android

查看 Kronos for Android