Crates.io | unix-ts |
lib.rs | unix-ts |
version | 1.0.0 |
source | src |
created_at | 2021-09-10 02:03:16.449405 |
updated_at | 2024-04-05 00:54:36.349178 |
description | Unix timestamp manipulation and conversion. |
homepage | https://github.com/lukesneeringer/unix-ts |
repository | https://github.com/lukesneeringer/unix-ts |
max_upload_size | |
id | 449083 |
size | 18,843 |
unix-ts is a library for dealing with timestamps. It supports lightweight creation and manipulation of timestamps.
The goal is to serve as a glue library that can take a timestamp and convert to whatever other formats are needed.
Add the crate to your Cargo.toml
file like usual:
[dependencies]
unix-ts = "1"
You can create a timestamp with the ts!
macro, which takes the Unix timestamp as an argument:
use unix_ts::ts;
// The argument is the number of seconds since the Unix epoch.
let t = ts!(1335020400);
// Fractional seconds are also allowed.
let t2 = ts!(1335020400.25);
For whole-second timestamps, you can also use the from
method:
use unix_ts::Timestamp;
let t = Timestamp::from(1335020400);
For milliseconds, microseconds, or nanoseconds, there are specific from
methods available:
use unix_ts::Timestamp;
let t = Timestamp::from_nanos(1335020400_000_000_000i64);
Finally, the new
method accepts seconds
and nanos
. This is generally less convenient than the
macro, though, because you have to convert fractional seconds to nanos by yourself.
There are three methods available for reading timestamps:
seconds() -> i64
: Returns the whole seconds value of the timestamp.at_precision(e) -> i128
: Returns the timestamp as an integer at greater precision than the
second. The e
value represents the power of 10; therefore, at_precision(3)
would return the
value in milliseconds.subsec(e) -> u32
: Returns the subsecond value at the given precision. The e
value represents
the power of 10; therefore, subsec(3)
would return the sub-second value in milliseconds.Timestamps can currently be converted into integers (with the loss of the subsecond), or
std::time::Duration
. This is done by implementing the Rust From
trait (so you can use the
from
or into
methods).