Rust में दिनांक और समय के साथ कार्य: A से Z तक
\n\nदिनांक और समय के साथ कार्य किसी भी एप्लिकेशन के विकास में प्रमुख कार्यों में से एक है: वेब सेवाओं से लेकर लॉगिंग सिस्टम तक। Rust, जो अपनी सुरक्षा और प्रदर्शन के लिए जाना जाता है, में दिनांक के साथ कार्य शक्तिशाली लाइब्रेरी chrono के माध्यम से कार्यान्वित किया जाता है। इस लेख में, हम दिनांक और समय के साथ कार्य के सभी पहलुओं को कवर करेंगे: मूल संचालन से लेकर समय क्षेत्रों के साथ जटिल हेरफेर तक।
1. chrono लाइब्रेरी की स्थापना और कॉन्फ़िगरेशन
\n\nchrono लाइब्रेरी Rust में दिनांक और समय के साथ कार्य के लिए डी-फैक्टो मानक है। यह टूल का एक पूरा सेट प्रदान करती है: सरल दिनांक ऑब्जेक्ट से लेकर समय क्षेत्रों को ध्यान में रखते हुए जटिल प्रकार तक।
कार्य शुरू करने के लिए, Cargo.toml फ़ाइल में निर्भरता जोड़ें:
[dependencies]\nchrono = "0.4"\n\nउसके बाद, अपने कोड में आवश्यक मॉड्यूल आयात करें:
\n\nuse chrono::{NaiveDate, NaiveDateTime, DateTime, Utc, Local, Duration};\nuse chrono::format::ParseError;\n\n2. दिनांक के साथ कार्य के लिए मुख्य डेटा प्रकार
\n\nchrono में कई प्रमुख प्रकार हैं जो डेवलपर की सभी आवश्यकताओं को कवर करते हैं:
- \n
NaiveDate— समय और समय क्षेत्र के बिना दिनांक (उदाहरण के लिए, 2024-01-15)। \n NaiveTime— दिनांक और समय क्षेत्र के बिना समय (उदाहरण के लिए, 14:30:00)। \n NaiveDateTime— समय क्षेत्र के बिना दिनांक और समय का संयोजन। \n DateTime<Tz>— समय क्षेत्र के साथ दिनांक और समय (उदाहरण के लिए,DateTime<Utc>याDateTime<Local>)। \n
आइए प्रत्येक प्रकार के ऑब्जेक्ट बनाने का एक उदाहरण देखें:
\n\n// NaiveDate बनाना\nlet date = NaiveDate::from_ymd_opt(2024, 1, 15).unwrap();\nprintln!("दिनांक: {}", date); // 2024-01-15\n\n// NaiveTime बनाना\nlet time = NaiveTime::from_hms_opt(14, 30, 0).unwrap();\nprintln!("समय: {}", time); // 14:30:00\n\n// NaiveDateTime बनाना\nlet datetime = NaiveDateTime::new(date, time);\nprintln!("दिनांक और समय: {}", datetime); // 2024-01-15 14:30:00\n\n// UTC समय क्षेत्र के साथ DateTime बनाना\nlet utc_datetime = Utc::now();\nprintln!("वर्तमान UTC समय: {}", utc_datetime);\n\n// स्थानीय समय क्षेत्र के साथ DateTime बनाना\nlet local_datetime = Local::now();\nprintln!("वर्तमान स्थानीय समय: {}", local_datetime);\n\n3. दिनांकों का स्वरूपण और पार्सिंग
\n\nसबसे सामान्य कार्यों में से एक दिनांकों को स्ट्रिंग में और वापस परिवर्तित करना है। chrono C से strftime के समान प्रारूप स्ट्रिंग का उपयोग करता है।
दिनांक को स्ट्रिंग में स्वरूपित करना
\n\nस्वरूपण के लिए .format() विधि का उपयोग करें:
use chrono::Utc;\n\nlet now = Utc::now();\n\n// मानक ISO 8601 प्रारूप\nprintln!("ISO 8601: {}", now.format("%Y-%m-%dT%H:%M:%S%z"));\n\n// हिंदी प्रारूप\nprintln!("हिंदी प्रारूप: {}", now.format("%d.%m.%Y %H:%M"));\n\n// केवल दिनांक\nprintln!("केवल दिनांक: {}", now.format("%A, %d %B %Y"));\n\n// आउटपुट:\n// ISO 8601: 2024-01-15T14:30:00+0000\n// हिंदी प्रारूप: 15.01.2024 14:30\n// केवल दिनांक: Monday, 15 January 2024\n\nमुख्य प्रारूप निर्दिष्टकर्ता:
\n\n- \n
%Y— वर्ष (4 अंक) \n %m— महीना (01-12) \n %d— दिन (01-31) \n %H— घंटे (00-23) \n %M— मिनट (00-59) \n %S— सेकंड (00-59) \n %z— समय क्षेत्र ऑफसेट \n %A— सप्ताह के दिन का पूरा नाम \n %B— महीने का पूरा नाम \n
स्ट्रिंग को दिनांक में पार्स करना
\n\nस्ट्रिंग को दिनांक में बदलने के लिए parse_from_str() विधि का उपयोग करें:
use chrono::NaiveDate;\nuse chrono::format::ParseError;\n\nfn parse_date(dat