Dátum és idő használata Rustban

Dátum és idő használata Rustban
Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

A dátum és az idő kezelése számos alkalmazás kulcsfontosságú szempontja, a feladatok ütemezésétől és az adatok elemzésétől a számítások elvégzéséig és az adatok megjelenítésének biztosításáig.





A Rust számos könyvtárral és modullal rendelkezik a dátumok és időpontok kezeléséhez. A Rust beépített idő láda az idővel kapcsolatos műveletekhez, és a Chrono könyvtár sok más Rust könyvtárral együttműködik a dátum és idő műveletekhez.





csatlakozik, de nincs internet -hozzáférés Windows 10
MAKEUSEOF A NAP VIDEÓJA GÖRGÖZSEN A TARTALOM FOLYTATÁSHOZ

Kezdő lépések A dátum és idő használata Rustban

A Chrono egy dátum-idő könyvtár a dátumok, időpontok, időzónák és időtartamok kezelésére a Rustban. A Chrono több funkciót és egy intuitív API-t kínál a dátum- és időtípusokhoz, időzónákhoz és eltolási dátum-időhöz, időtartamhoz és intervallumhoz, elemzéshez és formázáshoz, valamint a naptárak használatához.





A Chrono jól játszik a Rust ökoszisztéma más könyvtáraival, és zökkenőmentesen integrálódik a szabványos könyvtár I/O jellemzőivel, lehetővé téve a Chrono dátum- és időértékeinek olvasását és írását a különböző adatfolyamokból és azokhoz.

Ezenkívül a Chrono támogatja a szerializálást és a deszerializálást a Mag láda, ami megkönnyíti a Chrono típusokkal való munkát JSON, YAML és más formátumokban. A Chrono és a Serde integrációja alkalmassá teszi a dátum-idő műveletekre webes alkalmazások készítése Rustban .



A Chrono segítségével lekérheti tartózkodási helyét UTC (koordinált világidő) számos művelethez, például konverziókhoz.

Adja hozzá ezt az irányelvet a függőségek részed töltés.toml fájl telepítéséhez és használatához chrono láda:





 [dependencies] 
chrono = "0.4.24"

A telepítés után a chrono láda, használhatod chrono a Rust projektben a láda importálásával a következőképpen:

 use chrono::prelude::*; 

A Chrono az egyik Rust láda, amelyre szüksége lesz a fejlesztési arzenáljában, mivel ez biztosítja a legtöbb funkciót a dátum és idő műveletekhez.





Időzónák és időkezelés a Rust With Chrono-val

Az időzónák biztosítják, hogy az időbélyegek és az idővel kapcsolatos információk pontosak és konzisztensek legyenek a különböző földrajzi helyeken. Az időhöz kapcsolódó adatokkal végzett munka során elengedhetetlen az időzónák figyelembe vétele a félreértések és pontatlanságok elkerülése érdekében. Az olyan műveletek, mint az időbélyegek összehasonlítása, az időtartamok kiszámítása vagy az események ütemezése az időzóna megfelelő kezelése nélkül, váratlan eredményeket hozhatnak.

A Chrono segítségével konvertálhat az időzónák között. Íme egy példa az a Dátum idő egyik időzónából a másikba:

 use chrono::{DateTime, Utc, Local, TimeZone}; 

fn convert_timezone() {
    let utc_time: DateTime<Utc> = Utc::now();
    let local_time: DateTime<Local> = utc_time.with_timezone(&Local);

    println!("UTC time: {}", utc_time);
    println!("Local time: {}", local_time);
}

A convert_timezone függvény lekéri az aktuális UTC-t a Utc::now módszerrel konvertálja az UTC-t a helyi időzónává with_timezone módszer, amely hivatkozik a Helyi struct és visszatér a Dátum idő objektum, amely ugyanazt az időpontot képviseli, de a helyi időzónában.

Amikor felhívja a convert_timezone funkciót, kinyomtatja az UTC-t és a helyi időt a konzolra.

  a New York-i idő szerinti nyomtatás eredménye

Ezenkívül a Chrono kényelmes módszereket és funkciókat biztosít a nyári időszámításhoz (DST) és az időzóna-eltolásokhoz. A rendszerében megteheti állítsa be az órát a nyári időszámításhoz a Beállítások alkalmazáson vagy a Vezérlőpulton keresztül.

Íme egy példa, amely bemutatja a Chrono képességeit DST-vel és időeltolásokkal:

 use chrono::{DateTime, Utc, FixedOffset}; 

fn handle_dst() {
    let utc_time: DateTime<Utc> = Utc::now();
    let ny_timezone = FixedOffset::east(5 * 3600);
    // Eastern Daylight Time (EDT) UTC-4:00

    let ny_time: DateTime<FixedOffset> = utc_time.with_timezone(&ny_timezone);

    println!("UTC time: {}", utc_time);
    println!("New York time: {}", ny_time);
}

A hand_dst funkció a gombbal éri el az aktuális időt Most módszerrel, és lekéri a New York-i időt, miközben elszámolja az eltolási időt a Fixelteltolás::kelet módszer.

Felhívva a with_timezone függvényt, az UTC-t New York-i időzónára konvertálja. A Chrono a megfelelő DST-nek megfelelően kezeli az időbeállításokat, és visszaadja a Dátum idő tárgy.

  a New York-i idő szerinti nyomtatás eredménye

A DST használatakor döntő fontosságú, hogy ne feledje, hogy a DST-átmenetek meghatározott dátumokon és időpontokban történnek. Chrono's Dátum idő A struct képes kezelni ezeket az átmeneteket, és biztosítja az idő pontos megjelenítését a különböző időzónákban.

Időtartam és intervallum számítások

Az időtartam egy adott időponttól független időtartam. Előfordulhat, hogy ki kell számítania két esemény közötti időtartamot, meg kell mérnie az eltelt időt, vagy hozzá kell adnia vagy ki kell vonnia egy bizonyos összeget egy adott időből.

A Rust standard könyvtár idő A crate átfogó eszközöket biztosít az időtartamok hatékony kezeléséhez.

Így mérheti meg egy függvény végrehajtási idejét a idő láda:

 use chrono::{DateTime, Utc}; 
use std::time::Instant;

fn main() {
    let start = Instant::now();

    // Perform some operation
    // ...

    let end = Instant::now();
    let duration = end.duration_since(start);

    println!("Elapsed time: {:?}", duration);
}

A fő- funkció lekéri az aktuális időt a gombbal Azonnali a beépített módszer idő láda. A műtét után a fő- függvény lekéri az időt abban a pillanatban, és kiértékeli a különbséget a időtartam_a óta funkciót, mielőtt kinyomtatja az időeltérést a konzolra.

hogyan lehet megváltoztatni az alapértelmezett gmail fiókot

Sorozatosítás és deszerializálás: JSON-dátum és idő átalakítása rozsdás szerkezetekké a Chrono használatával

A dátum- és időértékek sorosítása és deszerializálása a JSON-ból a Chrono és a Serde használatával egyszerű folyamat. Először adjuk hozzá a mag és serde_json ládákat a projekt függőségeihez.

 [dependencies] 
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

Ezután meg kell határoznia a Rust típusát, és végre kell hajtania #[derive(serialize, deserialize)] attribútumok ahhoz a típushoz, ahol meg kell adni az adattípust:

 use chrono::{DateTime, Utc}; 

#[derive(Serialize, Deserialize)]
struct Meeting {
    start_time: DateTime<Utc>,
    end_time: DateTime<Utc>,
}

Sorozatba állíthatod a Találkozó struct JSON-ba a Serde segítségével a Chrono formázási képességei mellett.

Így konvertálhatja a példányt a Találkozó írja be a JSON-ba:

 use serde_json::to_string; 

fn main() {
    let meeting = Meeting {
        start_time: Utc::now(),
        end_time: Utc::now(),
    };

    let json = to_string(&meeting).unwrap();
    println!("{}", json);
}

A fő- függvény létrehozza a Találkozó példányt a mezők aktuális UTC-jével, mielőtt használná a to_string függvény a struct példányt a konzolra nyomtatott JSON-karakterláncsá alakítja.

Könnyen deszerializálhatja a JSON-dátum-idő-adatokat egy struct típusba a serde_json-val from_str függvény, amely bevesz egy JSON karakterláncot, és egy struct példányt ad vissza.

 use serde_json::from_str; 

fn main() {
    let json = r#"{"start_time": "2023-05-28T12:00:00Z", "end_time": "2023-05-28T14:00:00Z"}"#;

    let meeting: Meeting = from_str(json).unwrap();
    println!("{:#?}", meeting);
}

A fő- függvény deszerializálja a JSON karakterláncot a json változó a találkozó példánya a Találkozó struct, mielőtt kinyomtatja a struct példányt a konzolra.

Kifinomult alkalmazásokat készíthet a rozsdával

A Chrono robusztussága, könnyű kezelhetősége és kiterjedt funkcionalitása nélkülözhetetlen eszközzé teszik az alkalmazások dátumainak, időpontjainak, időtartamának és időközeinek kezeléséhez. A Chrono képességeinek kihasználásával pontos időszámítást, hatékony ütemezést és megbízható, dátumhoz kapcsolódó műveleteket biztosíthat.

A Chrono egyik kulcsfontosságú felhasználási esete a webes alkalmazások készítése. A Chrono használható tevékenységi időrekordok rögzítésére, felhasználói tevékenység időzítésére és egyéb webes műveletekre.