Tôi muốn hiển thị thời gian đã trôi qua giữa hai ngày trong một chuỗi.Sử dụng String.Format trên một TimeSpan để xuất đầy đủ giây mà không cần mili giây
Hãy nói rằng tôi có đoạn mã sau:
DateTime date1 = DateTime.Now();
System.Threading.Thread.Sleep(2500);
DateTime date2 = DateTime.Now();
TimeSpan elapsed = date2.substract(date1);
Console.WriteLine("> {0:hh:mm:ss}", elapsed);
Những gì tôi mong đợi:
> 00:00:03
Những gì tôi nhận được:
> 00:00:02.5002500
Có cách nào để sử dụng String. Chức năng định dạng chỉ trả về số giây đầy đủ?
Tôi cũng đã cố gắng để loại bỏ các chữ số thập phân với:
elapsed = elapsed.Substract(TimeSpan.FromMiliseconds((double)Timespan.Miliseconds);
Nhưng điều đó không làm việc, hoặc kể từ elapsed.Miliseconds trả 500 như một Integer.
Một giải pháp tốt đẹp, quá (Và có lẽ việc thực hiện liên quan đến hiệu quả nhất). –
có thể vừa tạo ra một TimeSpan mới với các đoạn 0 giây và sau đó in một đoạn. Định dạng "g" cùng với CultureInfo.InvariantCulture sẽ hoạt động tốt –