Rust 获取当前系统时间戳

一种是采用系统库timestamp1,一种是采用第三方库timestamp2,但是由于time库已经不在维护,所以推荐使用官方库。

目前rust的时间库为chrone

use std::time::{SystemTime, UNIX_EPOCH};

extern crate time;

fn timestamp2() -> i64 {
    let timespec = time::get_time();
    timespec.sec * 1000 + (timespec.nsec as f64 / 1000.0 / 1000.0) as i64
}

fn timestamp1() -> i64 {
    let start = SystemTime::now();
    let since_the_epoch = start
        .duration_since(UNIX_EPOCH)
        .expect("Time went backwards");
    let ms = since_the_epoch.as_secs() as i64 * 1000i64 + (since_the_epoch.subsec_nanos() as f64 / 1_000_000.0) as i64;
    ms
}

fn main() {
    let ts1 = timestamp1();
    println!("TimeStamp1: {}", ts1);
    let ts2 = timestamp2();
    println!("TimeStamp2: {}", ts2);
}

不过虽然time库不在维护,又出现一个新的时间库chrone
而且用法更简单,推荐如下这种方式

use chrono::prelude::*;

extern crate chrono;

fn main() {
    let dt = Local::now();
    println!("dt: {}", dt);
    println!("dt: {}", dt.timestamp_millis());
}

官网地址:https://github.com/chronotope/chrono/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 王二大夏天顶着太阳,费尽千辛万苦,跑了N多地方,终于找到两处相对满意的仓库,并经同事们确认,都觉得不错,报给老大哥...
    王二不二superdos阅读 3,998评论 0 2
  • 《给未来的那个他的一封书信》 亲爱的那个他。 你好吗? 不知道在未来我们会不会相遇,或许是路过吧。 你是否会跟我一...
    小人鱼_a1a7阅读 2,669评论 0 0
  • 单纯砌墙,挣取的只是砌墙的平方数乘于单价。增加平方,意味着延长劳动时间,在有限的白天时间外就是加班加点,除止之外没...
    向好阅读 2,515评论 4 9
  • 不知不觉我们对某件事情或者某个东西做出判断,是好是坏,是可取或是不可取。 骂脏话,贿赂,打人,骂人,称赞,高兴,积...
    金靖林阅读 1,241评论 0 0