[英]C# ticks to datetime and format
如何將刻度線轉換為日期時間並將其格式化為“ ss:fff”? 我的代碼:
public partial class MainWindow : Window
{
private DispatcherTimer timer;
private long _ticks = 0;
public MainWindow()
{
InitializeComponent();
}
private void Start(object sender, RoutedEventArgs e)
{
DateTime start = DateTime.UtcNow;
timer = new DispatcherTimer(new TimeSpan(0, 0, 0, 0, 1), DispatcherPriority.Normal, delegate
{
DateTime current = DateTime.UtcNow;
TimeSpan elapsed = current - start;
this.Show.Text = elapsed.TotalMinutes.ToString("00:00.000");
}, this.Dispatcher);
timer.Start();
}
private void Stop(object sender, RoutedEventArgs e)
{
timer.Stop();
}
}
它在mono上正常工作(我想,我嘗試過類似的方法,並且可以工作),但是在Windows上卻無法工作。 怎么了?
如果該操作花費的時間超過一分鍾,則無論如何都不想使用DateTime格式(因為"ss"
格式將顯示09
表示69
秒。
這樣可以正確調整經過時間以進行漂移。
DateTime start = DateTime.UtcNow;
timer = new DispatcherTimer(new TimeSpan(0, 0, 0, 0, 1), DispatcherPriority.Normal, delegate
{
DateTime current = DateTime.UtcNow;
TimeSpan elapsed = current - start;
this.Show.Text = elapsed.TotalSeconds.ToString ("00.000 seconds"); // a double converted to string.
}, this.Dispatcher);
編輯:
您的代碼未顯示您調用timer.Start ()
來實際啟動計時器。
它也沒有顯示如何防止計時器被垃圾回收: this.elapsedtimer = timer;
編輯2: TotalSeconds.ToString ("00.000 seconds")
使用Double.ToString的此重載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.