मुझे मिलीसेकंड में वर्तमान समय कैसे मिल सकता है जैसे मैं जावा में कर सकता हूं?
System.currentTimeMillis()
जवाबों:
रस्ट 1.8 के बाद से, आपको एक टोकरे का उपयोग करने की आवश्यकता नहीं है। इसके बजाय, आप उपयोग कर सकते हैं SystemTime
और UNIX_EPOCH
:
use std::time::{SystemTime, UNIX_EPOCH};
fn main() {
let start = SystemTime::now();
let since_the_epoch = start
.duration_since(UNIX_EPOCH)
.expect("Time went backwards");
println!("{:?}", since_the_epoch);
}
यदि आपको बिल्कुल मिलीसेकंड की आवश्यकता है, तो आप इसे परिवर्तित कर सकते हैं Duration
।
let in_ms = since_the_epoch.as_millis();
let in_ms = since_the_epoch.as_secs() as u128 * 1000 +
since_the_epoch.subsec_millis() as u128;
let in_ms = since_the_epoch.as_secs() * 1000 +
since_the_epoch.subsec_nanos() as u64 / 1_000_000;
Instant
फिर से पढ़ने की इच्छा हो सकती है : एक पल से "सेकंड की संख्या" प्राप्त करने के लिए कोई विधि नहीं है। इसके बजाय, यह केवल दो इंस्टेंट (या दो इंस्टेंट की तुलना) के बीच की अवधि को मापने की अनुमति देता है।
यदि आप केवल मिलीसेकंड के साथ सरल समय करना चाहते हैं, तो आप std::time::Instant
इस तरह का उपयोग कर सकते हैं :
use std::time::Instant;
fn main() {
let start = Instant::now();
// do stuff
let elapsed = start.elapsed();
// Debug format
println!("Debug: {:?}", elapsed);
// Format as milliseconds rounded down
// Since Rust 1.33:
println!("Millis: {} ms", elapsed.as_millis());
// Before Rust 1.33:
println!("Millis: {} ms",
(elapsed.as_secs() * 1_000) + (elapsed.subsec_nanos() / 1_000_000) as u64);
}
आउटपुट:
Debug: 10.93993ms
Millis: 10 ms
Millis: 10 ms
u128 is not supported
।
आप समय टोकरा का उपयोग कर सकते हैं :
extern crate time;
fn main() {
println!("{}", time::now());
}
यह एक ऐसा रिटर्न देता है Tm
जिसे आप प्राप्त कर सकते हैं जो भी आप चाहते हैं।
precise_time_...
कि टोकरा से काम करता है, भी प्रासंगिक हैं अगर एक बस रिश्तेदार बार को मापने के लिए चाहता है।
time::now_utc()
या time::get_time()
जावा के System.currentTimeMillis () UTC समय देता है के बाद से। मैं लिखता हूंlet timespec = time::get_time(); let mills = timespec.sec + timespec.nsec as i64 / 1000 / 1000;
chrono
इसकी जगह क्रेट का इस्तेमाल करें ।
extern crate time;
fn timestamp() -> f64 {
let timespec = time::get_time();
// 1459440009.113178
let mills: f64 = timespec.sec as f64 + (timespec.nsec as f64 / 1000.0 / 1000.0 / 1000.0);
mills
}
fn main() {
let ts = timestamp();
println!("Time Stamp: {:?}", ts);
}
System.currentTimeMillis()
जावा में वर्तमान समय और मध्यरात्रि, 1 जनवरी, 1970 के बीच मिलीसेकंड में अंतर लौटता है।
जंग में हमारे पास वर्तमान समय के साथ सेकंड के रूप में time::get_time()
वापसी होती है Timespec
और 1 जनवरी, 1970 की मध्यरात्रि से नैनोसेकंड में ऑफसेट होता है।
उदाहरण (रुस्त 1.13 का उपयोग करके):
extern crate time; //Time library
fn main() {
//Get current time
let current_time = time::get_time();
//Print results
println!("Time in seconds {}\nOffset in nanoseconds {}",
current_time.sec,
current_time.nsec);
//Calculate milliseconds
let milliseconds = (current_time.sec as i64 * 1000) +
(current_time.nsec as i64 / 1000 / 1000);
println!("System.currentTimeMillis(): {}", milliseconds);
}
संदर्भ: समय टोकरा , System.currentTimeMillis ()