working_with_time/
working_with_time.rs

1use kdb::{Date, Timespan, Timestamp};
2use std::{
3    convert::TryFrom,
4    time::{Duration, SystemTime},
5};
6
7fn main() {
8    let t = Timestamp::from(SystemTime::now());
9    println!("{} nanos from unix epoch", t.as_nanos_unix());
10    println!("{} nanos from 1 Jan 2000 (KDB epoch)", t.as_raw());
11
12    let ts = Timespan::from_nanos(60_000_000_000);
13    let ts2 = Timespan::from_secs(60);
14    let ts3 = Timespan::try_from(Duration::from_secs(60)).unwrap();
15    assert_eq!(ts, ts2);
16    assert_eq!(ts, ts3);
17
18    let d = Date::new(2020, 2, 12);
19    assert_eq!(d.as_raw(), 20 * 365 + 5 + 31 + 12 - 1); // Days from 1 Jan 2000
20}