关注我,学习Rust不迷路!!
在 Rust 中,比较两个日期的大小有多种方法。以下是列举的四种常见方法:文章来源:https://www.toymoban.com/news/detail-626954.html
1. 使用 PartialOrd trait:
use chrono::prelude::*;
fn main() {
let date1 = NaiveDate::from_ymd(2022, 1, 1);
let date2 = NaiveDate::from_ymd(2022, 1, 10);
if date1 < date2 {
println!("date1 is less than date2");
} else if date1 > date2 {
println!("date1 is greater than date2");
} else {
println!("date1 is equal to date2");
}
}
2. 使用 Ord trait:
use chrono::prelude::*;
fn main() {
let date1 = NaiveDate::from_ymd(2022, 1, 1);
let date2 = NaiveDate::from_ymd(2022, 1, 10);
match date1.cmp(&date2) {
std::cmp::Ordering::Less => println!("date1 is less than date2"),
std::cmp::Ordering::Greater => println!("date1 is greater than date2"),
std::cmp::Ordering::Equal => println!("date1 is equal to date2"),
}
}
3. 使用 PartialOrd 和 Ord trait 结合 PartialEq 和 Eq trait:
use chrono::prelude::*;
fn main() {
let date1 = NaiveDate::from_ymd(2022, 1, 1);
let date2 = NaiveDate::from_ymd(2022, 1, 10);
if date1.eq(&date2) {
println!("date1 is equal to date2");
} else if date1.ne(&date2) {
println!("date1 is not equal to date2");
} else if date1.lt(&date2) {
println!("date1 is less than date2");
} else if date1.le(&date2) {
println!("date1 is less than or equal to date2");
} else if date1.gt(&date2) {
println!("date1 is greater than date2");
} else if date1.ge(&date2) {
println!("date1 is greater than or equal to date2");
}
}
4. 使用 DateTime 类型的 timestamp 进行比较:
use chrono::prelude::*;
fn main() {
let date1 = NaiveDate::from_ymd(2022, 1, 1);
let date2 = NaiveDate::from_ymd(2022, 1, 10);
let timestamp1 = date1.and_hms(0, 0, 0).timestamp();
let timestamp2 = date2.and_hms(0, 0, 0).timestamp();
if timestamp1 < timestamp2 {
println!("date1 is less than date2");
} else if timestamp1 > timestamp2 {
println!("date1 is greater than date2");
} else {
println!("date1 is equal to date2");
}
}
这些方法中,前两种使用 PartialOrd
和 Ord
trait 进行日期比较,第三种结合了 PartialEq
和 Eq
trait,而第四种方法使用 DateTime
类型的 timestamp
进行比较。文章来源地址https://www.toymoban.com/news/detail-626954.html
关注我,学习Rust不迷路!!
到了这里,关于没有jodatime,rust里怎么比较两个日期(时间)的大小呢?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!