Awesome
<!-- SPDX-FileCopyrightText: 2023 Shun Sakai SPDX-License-Identifier: Apache-2.0 OR MIT -->nt-time
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.