相关的库:

extern crate time;
use chrono::prelude::*;
use time::Duration;

chrono库和time库是藕断丝连,以后会和time独立。特别是在Duration上面。

一、问题的提出

//世界时间
let utc: DateTime<Utc> = Utc::now();       // e.g. `2014-11-28T12:45:59.324310806Z`
// 本地电脑时间
let local: DateTime<Local> = Local::now(); // 2020-03-25T14:59:59.000000780+08:00

但是因Local类时间是跟本地操作系统的,所以如果你从阿里云(上海)到AMAZON云(纽约),那么,这个local也会变化。在程序设计上,如果需要严谨,那么就要设置相应的时区。

这样就有了FixedOffset。

二、FixedOffset

1、UTC -> FixedOffset 转换

// 世界时间与 北京时间的转换
let dt = Utc::now();
let fixed_dt = dt.with_timezone(&FixedOffset::east(8*3600));


2、相关用法

本文主要探讨一下固定时区的用法:

// 北京时间是东八区
let dt: DateTime<FixedOffset> = FixedOffset::east(8 * 3600).ymd(2020, 3, 25).and_hms(20, 56, 13);
// 这个与LOCAL是一样的
pub fn add_seconds(start_time: DateTime<FixedOffset>, nseconds: i64) -> DateTime<FixedOffset> {let end_time = start_time + chrono::Duration::seconds(nseconds);end_time
}

关于struct中字段:

pub struct ExchangeTime {// night_preopentime: DateTime<Local>, //NightMarket;// night_opentime: DateTime<Local>,// night_closetime: DateTime<Local>,day_preopentime: DateTime<FixedOffset>,  //开盘集合竟价开盘时间day_opentime: DateTime<FixedOffset>,     //日盘连续开市时间day_preclosetime: DateTime<FixedOffset>, //日盘连续预结束时间-》尾盘集合竞价开始day_closetime: DateTime<FixedOffset>,    //日盘收市// day_firstphase_starttime: DateTime<Local>, //第一节休息开始时间,只有商品期货才有// day_firstphase_endtime: DateTime<Local>,   //第一节休息结束时间,只有商品期货才有day_break_starttime: DateTime<FixedOffset>, //上午休市开始day_break_endtime: DateTime<FixedOffset>,   //上午休市结束 }

其它用法:如xtp中md中的data_time.

pub fn get_datetime(ntime: i64) -> DateTime<FixedOffset> {// 2020,0321,221327,000//println!("ntime:{:?}", ntime);let value = ntime as f64;let f_year = value / 10.0_f64.powi(13);let f_year_left = value - f_year.floor() * 10.0_f64.powi(13);// 03,21221327000let f_month = f_year_left / 10.0_f64.powi(11);// 21,221327000let f_month_left = f_year_left - f_month.floor() * 10.0_f64.powi(11);let f_day = f_month_left / 10.0_f64.powi(9);let f_day_left = f_month_left - f_day.floor() * 10.0_f64.powi(9);// 22,1327000let f_hour = f_day_left / 10.0_f64.powi(7);let f_hour_left = f_day_left - f_hour.floor() * 10.0_f64.powi(7);// 13,27000let f_minute = f_hour_left / 10.0_f64.powi(5);let f_minute_left = f_hour_left - f_minute.floor() * 10.0_f64.powi(5);//27000let f_second = f_minute_left / 10.0_f64.powi(3);let f_second_left = f_minute_left - f_second.floor() * 10.0_f64.powi(3);let f_nano = f_second_left;//println!("a");let y = f_year as i32;let m = f_month as u32;let d = f_day as u32;let hh = f_hour as u32;let mm = f_minute as u32;let ss = f_second as u32;let nano = f_nano as u32;let dt: DateTime<FixedOffset> = FixedOffset::east(8 * 3600).ymd(y, m, d).and_hms_nano(hh, mm, ss, nano); dt
}

Rust : chrono库,DateTime、FixedOffset等相关推荐

  1. python中datetime库_一天掌握一个Python库--datetime库

    #一天掌握一个Python库--datetime库 **datatime** 模块题共用一些处理日期,时间和时间间隔的函数.这个模块使用面向对象的交互取代了**time**模块中整形/元组类型的时间函 ...

  2. C++11 处理时间和日期的处理,以及chrono库介绍

    C++11提供了日期和时间相关的库chrono,通过这个库可以很方便的对时间和日期进行处理: chrono库主要包含三种类型: 1.时间间隔duration 介绍一下duraton的原型: templ ...

  3. chrono是一个time library,C++11 std::chrono库详解

    C++11 std::chrono库详解 chrono是一个time library, 源于boost,现在已经是C++标准.话说今年似乎又要出新标准了,好期待啊! 要使用chrono库,需要#inc ...

  4. 丅rust是什么意思_中文版《Rust标准库》来了

    ==================================== ==================================== Rust标准库是可移植Rust软件的基础,Rust软 ...

  5. C++11 中chrono库 实现高精度定时

    一种"传统"ctime计时方法: #include <ctime> using namespace std;clock_t start = clock(); // do ...

  6. C++11的chrono库,可实现毫秒微秒级定时

    C++11有了chrono库,可以很容易的实现定时功能. chrono: chrono库主要包含了三种类型:时间间隔Duration.时钟Clocks和时间点Time point. Duration: ...

  7. Python标准库datetime之date模块详解

    Python标准库datetime之date模块详解 datetime是Python提供的操作日期和时间的标准库,主要有datetime.date模块.datetime.time模块及datetime ...

  8. Rust actix aiohttp_如何看待 Rust Actix 库的维护者退出开源界?

    更新:actix-web已经找到了接手维护者. 新的维护者看上去是一个比较靠谱的开发者,看到他也参与bastion这个项目,该项目旨在用Rust实现一个类Erlang VM(BEAM)的东东.感觉ac ...

  9. Python标准库datetime之datetime模块详解

    Python标准库datetime之datetime模块详解 1.日期时间对象 日期时间对象是指具有日期(年月日)和时间(时分秒)双重属性的实例 日期时间对象的类型为datetime.datetime ...

  10. (笔记)处理日期和时间的方法(chrono 库,time_t等)

    文章目录 0 摘要 1 chrono 库 1.1 时间间隔duration 1.2 时间点time point 1.3 时钟clocks 1.3.1 system_clock 1.3.2 steady ...

最新文章

  1. 双十二自动刷淘宝能量,这个脚本你值得拥有
  2. Android最佳的开源库(四)
  3. arm 流水线和pc值
  4. 火狐标签在中间_在Firefox中保留未使用的标签
  5. SWIFT推送之本地推送(UILocalNotification)之二带按钮的消息
  6. 串行口方式二 波特率_一文就能看懂“串口通讯”的概念、3个通讯方式、9大注意事项...
  7. java修改request的paramMap
  8. php中 不等运算符是,PHP中,不等运算符是
  9. 2、接口测试-mitmproxy录制及回放使用
  10. 链家网租房信息数据分析——从爬虫到房租预测
  11. Python爬虫:无头浏览器爬虫
  12. 数据库——如何求出候选码
  13. 微信小程序实现服务通知 模板消息详解(附源码)
  14. python空气质量指数计算_Python的学习笔记案例8--空气质量指数计算5.0
  15. H5 会动的皮卡丘动画
  16. 学python安装-Python学习笔记-Python安装
  17. blender 2.8 python bpy 编写脚本操作物体
  18. HTML5实现3D校园地图思路
  19. 联想S41-70拆机换内存条
  20. Tableau各版本更新情况

热门文章

  1. webpack的CommonsChunkPlugin分析与优化
  2. 体验Windows server 2012上安装SQL 2012
  3. office2010过期解决办法
  4. ps常用命令简单概括
  5. Oracle9个重要的视图
  6. 基于stylus的border一像素线问题与ellipsis多行的兼容方案
  7. OpenResty之 lua_shared_dict 指令
  8. java Integer类的缓存(转)
  9. 一句话讲清楚什么是JavaEE
  10. OOD1---wangwenmin