#utc #cross-platform #unix-timestamp #no-std #time #unixtime

no-std utcnow

Get the current unixtime in a no-std context

15 releases

new 0.2.7 Dec 12, 2024
0.2.6 Aug 20, 2024
0.2.5 Mar 18, 2024
0.2.4 Sep 11, 2023
0.1.3 Jul 25, 2022

#34 in Date and time

Download history 7712/week @ 2024-08-22 7355/week @ 2024-08-29 8335/week @ 2024-09-05 8366/week @ 2024-09-12 7832/week @ 2024-09-19 9981/week @ 2024-09-26 9540/week @ 2024-10-03 9602/week @ 2024-10-10 10488/week @ 2024-10-17 8746/week @ 2024-10-24 7124/week @ 2024-10-31 8610/week @ 2024-11-07 9795/week @ 2024-11-14 7901/week @ 2024-11-21 6343/week @ 2024-11-28 6576/week @ 2024-12-05

33,042 downloads per month
Used in 19 crates (2 directly)

Apache-2.0

54KB
960 lines

utcnow — Get the current unixtime in a no-std context

GitHub Workflow Status Crates.io Minimum supported Rust version License

This library solves one question, and one question only: What's the time?

In UTC, and according to the clock of the PC, tablet, toaster … the library runs on, expressed as seconds + nanoseconds since 1970-01-01.

let now = utcnow().unwrap();
let seconds = now.as_secs();
let nanos = now.subsec_nanos();

For many target platforms this call cannot fail. If this is true for the current target, then the constant INFALLIBLE will be true.

If the target platform is not supported, then utcnow() will always return an error instead of failing to compile. Use the library with default-features = false and without the feature fallback to get a compile-time error instead.

The feature std (enabled by default) is only needed if you need the Error type to implement std::error::Error.

Supported platforms

If you have successfully tested one of the untested targets, then please tell me. And if not, then even more so!

If you know how to implement another target, then please open a pull request.

Supported and tested:

  • Android
  • Emscripten
  • FreeBSD
  • Haiku
  • Illumos
  • Linux
  • Linux with Musl
  • MacOS
  • NetBSD
  • WASI
  • wasm32
  • Windows

(Probably) supported, but not actually tested:

  • Darwin
  • Dragonfly
  • Fuchsia
  • iOS
  • OpenBSD
  • Redox
  • Solaris

Increasing the msrv for tier-2 or lower platforms will not be indicated as a breaking change to the semver version.

Feature flags

utcnow has the following optional features:

Dependencies

~0–10MB
~108K SLoC