标签: rust-chrono

如何为Chrono UTC添加天数?

我正在尝试找到为Chrono添加天数的首选方法UTC.我想在当前时间增加137天:

let dt = UTC::now();
Run Code Online (Sandbox Code Playgroud)

rust rust-chrono

12
推荐指数
2
解决办法
3936
查看次数

如何向 Chrono NaiveDate 添加月份?

我正在尝试创建一个日期选择器,我需要在几个月之间导航

let current = NaiveDate::parse_from_str("2020-10-15", "%Y-%m-%d").unwrap();
Run Code Online (Sandbox Code Playgroud)

我怎样才能生成日期2020-11-15

rust rust-chrono

10
推荐指数
2
解决办法
4291
查看次数

如何将自纪元以来的Unix时间/时间转换为标准日期和时间?

我正在使用计时箱; 经过一些挖掘后,我发现该DateTime类型具有timestamp()可以生成类型的纪元时间的函数i64.但是,我无法找到如何将其转换回来DateTime.

extern crate chrono;
use chrono::*;

fn main() {
    let date = chrono::UTC.ymd(2020, 1, 1).and_hms(0, 0, 0);
    println!("{}", start_date.timestamp());
    // ...how to convert it back?
}
Run Code Online (Sandbox Code Playgroud)

time rust rust-chrono

9
推荐指数
1
解决办法
1909
查看次数

如何将自定义 serde 解串器用于计时时间戳?

我正在尝试将 JSON 解析为一个具有chrono::DateTime字段的结构。JSON 以自定义格式保存时间戳,我为其编写了反序列化器。

我如何连接两者并使用它来工作#[serde(deserialize_with)]

我正在使用NaiveDateTime更简单的代码

extern crate serde;
extern crate serde_json;
use serde::Deserialize;
extern crate chrono;
use chrono::NaiveDateTime;

fn from_timestamp(time: &String) -> NaiveDateTime {
    NaiveDateTime::parse_from_str(time, "%Y-%m-%dT%H:%M:%S.%f").unwrap()
}

#[derive(Deserialize, Debug)]
struct MyJson {
    name: String,
    #[serde(deserialize_with = "from_timestamp")]
    timestamp: NaiveDateTime,
}

fn main() {
    let result: MyJson =
        serde_json::from_str(r#"{"name": "asdf", "timestamp": "2019-08-15T17:41:18.106108"}"#)
            .unwrap();
    println!("{:?}", result);
}
Run Code Online (Sandbox Code Playgroud)

我收到三个不同的编译错误:

error[E0308]: mismatched types
  --> src/main.rs:11:10
   |
11 | #[derive(Deserialize, Debug)]
   |          ^^^^^^^^^^^ expected reference, found type parameter …
Run Code Online (Sandbox Code Playgroud)

rust rust-chrono serde

9
推荐指数
2
解决办法
3681
查看次数

获取一周的开始/结束日期

我需要chrono::Date今年一周的第一个和最后一个日期。

我有两个问题,首先我无法解析chrono今年的星期,第二我无法获得本周的第一个/最后一个日期。(这里有很多其他语言的解决方案,但没有rust)

TLDR:我需要一个这样的函数: fn x(week: isize) -> (Date<Local>, Date<Local>)元组为(一周的第一天,一周的最后一天)。

rust rust-chrono

9
推荐指数
2
解决办法
3229
查看次数

如何测试 chrono::DateTime&lt;Local&gt; 是否在一天中的特定时间范围内?

我想将当前当地时间与恒定时间范围进行比较,但我当前的解决方案似乎比我预期的更困难。

\n\n

我可以构造一个chrono::DateTime<Local>with Local::now(). 然后我可以费力地找出是否now位于特定时间范围内,如下所示:

\n\n
let current_hour = now.hour();\nlet current_minute = now.minute();\n\n// see if `now` lies between 06:00 and 23:00\ncurrent_hour >= 6 && current_hour < 23\n\n// note the inelegance of the syntax and the potential for fencepost errors\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我想检查 06:12\xe2\x80\x9323:15 的范围,问题会变得更糟,因为我必须检查小时是否等于 6,然后检查分钟是否大于 12,然后检查 \ xe2\x80\x94 zzzzz...

\n\n

那很无聊。我可以尝试使用 来表示字符串parse_from_rfc2822,但是我必须首先发出当前日期,然后在一天中的时间进行编辑,然后检查解析错误,现在我又在睡觉了。

\n\n

我想我只是错误地阅读了计时文档。如果我要实现该库,我会尝试构建一个TimeOfDay<Local>实现 的数据类型Ord,从而允许惯用的范围检查。我想它已经在某个地方了,但我只是想念它。

\n

rust rust-chrono

8
推荐指数
1
解决办法
5340
查看次数

无法从 json 反序列化 chrono::DateTime

我遇到一个有趣的问题。由于某种原因,serde 无法chrono::DateTime<Utc>从与序列化格式相同的字符串中反序列化对象(但如果我用它保存变量,它就会这样做):

use chrono; // 0.4.11
use serde_json; // 1.0.48

fn main() {
    let date = chrono::Utc::now();
    println!("{}", date);

    let date_str = serde_json::to_string(&date).unwrap();
    println!("{}", date_str);

    let parsed_date: chrono::DateTime<chrono::Utc> = serde_json::from_str(&date_str).unwrap();
    println!("{}", parsed_date);

    assert_eq!(date, parsed_date);

    let date = "2020-03-28T16:29:04.644008111Z";
    let _: chrono::DateTime<chrono::Utc> = serde_json::from_str(&date).unwrap();
}
Run Code Online (Sandbox Code Playgroud)

这是游乐场链接

哪个输出:

   Compiling playground v0.0.1 (/playground)
    Finished dev [unoptimized + debuginfo] target(s) in 1.01s
     Running `target/debug/playground`
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error("invalid type: integer `2020`, expected a formatted …
Run Code Online (Sandbox Code Playgroud)

json rust rust-chrono serde

8
推荐指数
1
解决办法
4679
查看次数

如何计算两个 chrono::DateTime 之间的持续时间?

我正在使用chrono crate,想要计算Duration两个DateTimes 之间的值。

use chrono::Utc;
use chrono::offset::TimeZone;

let start_of_period = Utc.ymd(2020, 1, 1).and_hms(0, 0, 0);
let end_of_period = Utc.ymd(2021, 1, 1).and_hms(0, 0, 0);

// What should I enter here?
//
// The goal is to find a duration so that
// start_of_period + duration == end_of_period
// I expect duration to be of type std::time
let duration = ... 

let nb_of_days = duration.num_days();
Run Code Online (Sandbox Code Playgroud)

rust rust-chrono

8
推荐指数
1
解决办法
3045
查看次数

如何使用 chrono 处理 Unix 时间戳?

我似乎无法弄清楚如何使用 Rust 处理 Unix 时间戳chrono

\n

我有以下代码,但是naive和 因此datetime变量不正确:

\n
use chrono::{Utc, DateTime, NaiveDateTime};\n\nfn main() {\n    println!("Hello, world!");\n\n    let timestamp = "1627127393230".parse::<i64>().unwrap();\n    let naive = NaiveDateTime::from_timestamp(timestamp, 0);\n    let datetime: DateTime<Utc> = DateTime::from_utc(naive, Utc);\n\n    println!("timestamp: {}", timestamp);\n    println!("naive: {}", naive);\n    println!("datetime: {}", datetime);\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n

输出:

\n
use chrono::{Utc, DateTime, NaiveDateTime};\n\nfn main() {\n    println!("Hello, world!");\n\n    let timestamp = "1627127393230".parse::<i64>().unwrap();\n    let naive = NaiveDateTime::from_timestamp(timestamp, 0);\n    let datetime: DateTime<Utc> = DateTime::from_utc(naive, Utc);\n\n    println!("timestamp: {}", timestamp);\n    println!("naive: {}", naive);\n    println!("datetime: …
Run Code Online (Sandbox Code Playgroud)

rust rust-chrono

8
推荐指数
1
解决办法
5066
查看次数

Cargo 构建失败:找不到 ld 框架

尝试运行一个简单的程序,但由于问题而失败

note: ld: framework not found Security

clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

我尝试做一些调查,我发现 Cargo.toml 中的 chrono 0.4.19 指出了这一点。一旦我消除了这种依赖,它就会继续构建。我是 mac 世界的新手,看过各种建议,但我对这个问题非常无能为力。

我尝试对其进行 dockerise,然后它在容器上运行良好,但在我的 mac 上却不起作用。谁能指出我正确的方向吗?

macos rust rust-cargo rust-chrono

8
推荐指数
0
解决办法
1343
查看次数

标签 统计

rust ×10

rust-chrono ×10

serde ×2

json ×1

macos ×1

rust-cargo ×1

time ×1