আমি জাভাতে পারার মতো মিলিসেকেন্ডে কীভাবে বর্তমান সময় পাব?
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()যেহেতু জাভা-র সিস্টেম.কন্ট্রেনটাইমমিলিস () ইউটিসি সময় দেয়। আমি লিখব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()।
use std::time::{SystemTime, UNIX_EPOCH};
fn get_epoch_ms() -> u128 {
SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap()
.as_millis()
}