Home

Awesome

<!-- SPDX-FileCopyrightText: 2023 Shun Sakai SPDX-License-Identifier: Apache-2.0 OR MIT -->

nt-time

CI Version MSRV Docs License

nt-time is a Windows file time library for Rust.

Usage

Add this to your Cargo.toml:

[dependencies]
nt-time = "0.10.1"

Example

use core::time::Duration;

use nt_time::{
    time::{macros::datetime, OffsetDateTime},
    FileTime,
};

let ft = FileTime::NT_TIME_EPOCH;
assert_eq!(
    OffsetDateTime::try_from(ft).unwrap(),
    datetime!(1601-01-01 00:00 UTC)
);

let ft = ft + Duration::from_secs(11_644_473_600);
assert_eq!(
    OffsetDateTime::try_from(ft).unwrap(),
    OffsetDateTime::UNIX_EPOCH
);
assert_eq!(ft.to_raw(), 116_444_736_000_000_000);

assert_eq!(FileTime::new(u64::MAX), FileTime::MAX);

Crate features

std

Enables features that depend on the standard library. This is enabled by default.

large-dates

Enables the large-dates feature of the time crate.

chrono

Enables the chrono crate.

rand

Enables the rand crate.

serde

Enables the serde crate.

serde-human-readable

Allows Serde representations to use a human-readable format. This implicitly enables the serde feature.

no_std support

This supports no_std mode. Disables the default feature to enable this.

Documentation

See the documentation for more details.

Minimum supported Rust version

The minimum supported Rust version (MSRV) of this library is v1.74.0.

Source code

The upstream repository is available at https://github.com/sorairolake/nt-time.git.

The source code is also available at:

Changelog

Please see CHANGELOG.adoc.

Contributing

Please see CONTRIBUTING.adoc.

License

Copyright © 2023–2024 Shun Sakai (see AUTHORS.adoc)

This library is distributed under the terms of either the Apache License 2.0 or the MIT License.

This project is compliant with version 3.2 of the REUSE Specification. See copyright notices of individual files for more details on copyright and licensing information.