Rust:
เปรียบเทียบสองวันที่
การทำ:
Rust ใช้ chrono
เพื่อจัดการกับวันที่ได้ง่ายหน่อย ก่อนอื่น cargo.toml
ต้องการ chrono = "0.4"
จากนั้นคุณสามารถเปรียบเทียบวันที่ได้ดังนี้:
extern crate chrono;
use chrono::{DateTime, Utc};
fn main() {
let date1: DateTime<Utc> = Utc::now();
let date2: DateTime<Utc> = Utc::now(); // เปลี่ยนสิ่งนี้เพื่อผลลัพธ์ที่แตกต่าง
if date1 > date2 {
println!("วันที่ 1 อยู่หลังจากวันที่ 2");
} else if date1 < date2 {
println!("วันที่ 1 อยู่ก่อนวันที่ 2");
} else {
println!("วันที่ 1 เท่ากับวันที่ 2");
}
}
ผลลัพธ์ตัวอย่างเมื่อ date1
อยู่หลัง:
วันที่ 1 อยู่หลังจากวันที่ 2
การศึกษาลงลึก
ในช่วงต้นของ Rust (2010s), การเปรียบเทียบวันที่เป็นเรื่องที่ยุ่งยากกว่า—ไม่มี chrono
crate มา chrono
และทำให้สิ่งต่างๆง่ายขึ้นด้วยประเภทเช่น DateTime
ก่อน chrono
, เราต้องจัดการกับเวลาด้วยตนเอง ซึ่งมีโอกาสเกิดข้อผิดพลาดได้ง่าย
ทำไม chrono
? มันทำให้ความซับซ้อนเช่นเขตเวลาและปีอธิกสุรทิน, ทำให้การเปรียบเทียบวันที่เชื่อถือได้ โดยปราศจากมัน, คุณจะต้องจัดการกับเวลา Unix ที่ยุ่งยากและอ่านยาก
มีทางเลือกอื่นสำหรับ chrono
เช่น, กระบอก time
, แต่ chrono
ได้รับความนิยมในการใช้งานเพราะความเรียบง่ายและคุณสมบัติต่างๆ
ดูเพิ่มเติม
- เอกสารกระบอก
chrono
: docs.rs/chrono - เอกสารความคิดเห็นการเรียกใช้วันที่และเวลาอย่างเป็นทางการของ Rust: doc.rust-lang.org/std/time
- การเปรียบเทียบระหว่างกระบอก
chrono
และtime
: users.rust-lang.org